c#接收ajaxjson数组对象数组,C#怎么读取到ajax异步过来的
json的数据呢?
答案(3)
JSON(JavaScript Object Notation)允许轻松地将 JavaScript 对象转换成可以随请求发送的数据(同步或异步都可以)。本⽂⾸先介绍JSON的数据格式,接着介绍如何在 JavaScript 中使⽤ JSON,重点介绍⼀下如何使⽤JSON完成数据的异步传输。
1. JSON的数据格式
a) 按照最简单的形式,可以⽤下⾯这样的 JSON 表⽰名称/值对:
{ "firstName": "Brett" }
b) 可以创建包含多个名称/值对的记录,⽐如:
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance" }
c) 可以创建值的数组
{ "people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets" }
]}
d) 当然,可以使⽤相同的语法表⽰多个值(每个值包含多个记录):
{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }
]
}
注意,在不同的主条⽬(programmers、authors 和 musicians)之间,记录中实际的名称/值对可以不⼀样。JSON 是完全动态的,允许在 JSON 结构的中间改变表⽰数据的⽅式。
2. 在 JavaScript 中使⽤ JSON
JSON 是 JavaScript 原⽣格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或⼯具包。
2.1 将 JSON 数据赋值给变量
例如,可以创建⼀个新的 JavaScript 变量,然后将 JSON 格式的数据字符串直接赋值给它:
var people =
{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }
]
}
2.2 访问数据
将这个数组放进 JavaScript 变量之后,就可以很轻松地访问它。实际上,只需⽤点号表⽰法来表⽰数组元素。所以,要想访问programmers 列表的第⼀个条⽬的姓⽒,只需在 JavaScript 中使⽤下⾯这样的代码:
people.programmers[0].lastName;
注意,数组索引是从零开始的。
2.3 修改 JSON 数据
正如访问数据,可以按照同样的⽅式修改数据:
people.musicians[1].lastName = "Rachmaninov";
2.4 转换回字符串
a) 在 JavaScript 中这种转换也很简单:
String newJSONtext = JSONString();
b) 可以将任何 JavaScript 对象转换为 JSON ⽂本。并⾮只能处理原来⽤ JSON 字符串赋值的变量。为了对名为 myObject 的对象进⾏转换,只需执⾏相同形式的命令:
String myObjectInJSON = JSONString();
说明:将转换回的字符串作为Ajax调⽤的字符串,完成异步传输。
⼩结:如果要处理⼤量 JavaScript 对象,那么 JSON ⼏乎肯定是⼀个好选择,这样就可以轻松地将数据转换为可以在请求中发送给服务器端程序的格式。
3. 服务器端的 JSON
3.1 将 JSON 发给服务器
a) 通过 GET 以名称/值对发送 JSON
在 JSON 数据中会有空格和各种字符,Web 浏览器往往要尝试对其继续编译。要确保这些字符不会在服务器上(或者在将数据发送给服务器的过程中)引起混乱,需要在JavaScript 的escape()函数中做如下添加:
var url = "organizePeople.php?people=" + JSONString());
request.open("GET", url, true);
request.send(null);
b) 利⽤ POST 请求发送 JSON 数据
当决定使⽤ POST 请求将 JSON 数据发送给服务器时,并不需要对代码进⾏⼤量更改,如下所⽰:
var url = "organizePeople.php?timeStamp=" + new Date().getTime();
request.open("POST", url, true);
jquery在项目里是干啥的request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.JSONString());
注意:赋值时格式必须是var msg=eval('(' + sponseText + ')');
3.2 在服务器上解释 JSON
a) 处理 JSON 的两步骤。
针对编写服务器端程序所⽤的语⾔,到相应的 JSON 解析器/⼯具箱/帮助器 API。
使⽤ JSON 解析器/⼯具箱/帮助器 API 取得来⾃客户机的请求数据并将数据转变成脚本能理解的东西。
b) 寻 JSON 解析器
寻 JSON 解析器或⼯具箱最好的资源是 JSON 站点。如果使⽤的是 Java servlet, 上的 org.json 包就是个不错的选择。在这种情况下,可以从 JSON Web 站点下载 json.zip 并将其中包含的源⽂件添加到项⽬构建⽬录。编译完这些⽂件后,⼀切就就绪了。对于所⽀持的其他语⾔,同样可以使⽤相同的步骤;使⽤何种语⾔取决于您对该语⾔的精通程度,最好使⽤您所熟悉的语⾔。
c) 使⽤ JSON 解析器
⼀旦获得了程序可⽤的资源,剩下的事就是到合适的⽅法进⾏调⽤。如果在 servlet 中使⽤的是 org.json 包,则会使⽤如下代码:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
StringBuffer jb = new StringBuffer();
String line = null;
您已经评价过!
您已经评价过!
json格式的字符串也就是个字符串,别的字符串你在后台怎么取,json的也⼀样。
⾄于C#处理json,好像.NET Framwork3.5提供了System.Runtime.Serialization.Json⽤来处理json。
我只会java的,C#的⽤法不知道,⾃⼰查msdn吧。
您已经评价过!
您已经评价过!
在C#页⾯放⼀个HideField ,⽤Javascript 将 Json 的值 负给 HideField
继续追问:
那就没有异步的效果了..
补充回答:
怎么会?
补充回答:
你想让 Javascript 和 C# 进⾏ 数据交互 就得借助于⼀个 C# 和 Javascript 都识别的第三⽅, 服务端控件 和 Session 都可以作为第三⽅使⽤。
顺便问⼀句 你⽤的是纯Javasript 做的 Ajax 吗 ?XMLHTTPrequest ?
还是 Ajax控件
继续追问:
Jquery⾥⾯的Ajax.我这边可以传过去json数据,但是,在服务器怎么解析出来呢?然后,服务端还要返回⼀个JSO的数据回来。。服务端是C#..
补充回答:
抱歉,我前⾯讲的你可当作废话了,我对Json 不懂,但是你提到了你已把Json数据转换成⽂本,那么你在C#⾥对字符串进⾏分析处理不就可以了得到你想要的数据了吗。
您已经评价过!
您已经评价过!
⽂章转载请注明来源。新辉⽹主页 > ⽹页基础 > Javascript/Ajax >
标题:C# 怎么读取到ajax异步过来的json的数据呢?
关键词:问答系统,提问,回答,知识搜索,问问,搜搜,腾讯,C#,怎么
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论