ajax如何将json数据传递到后台...?

GDY__GDY 2011-10-18 05:38:11
大家好,本人现在正在学习web前端开发,看到ajax这里,发现ajax正常传递数据的方式都是用xml,但是在网络上用json传递数据比较轻量,用json传递数据就要解决两个问题:

1、从服务器回发回来的json格式的字符串该如何处理;
2、如何将json数据提交到服务器并在服务器端解析json数据

我现在被第二个问题给困扰一天了,请哪位曾经的先行者给小弟指点一下,也让后来的新手少走些弯路,先谢过大家了...
希望哪位仁兄说的细一些,兄弟基础比较薄,先行谢过了
...全文
3537 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zrr_123456 2011-10-19
  • 打赏
  • 举报
回复
挣积分
GDY__GDY 2011-10-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 flyerwing 的回复:]
JSON就是字符串吧。
[/Quote]

是的,就是字符串,反正目前我是这么理解的,我刚刚学习入门,什么都不知道呢
GDY__GDY 2011-10-19
  • 打赏
  • 举报
回复
在服务器端接收json字符串的这个问题我解决了,可能有些山寨,如果有更好的办法希望后来的兄弟告诉我,真心的谢谢啦,如下:
我是用.net实现的,在后台需要 引入Newtonsoft.Json.dll中的using Newtonsoft.Json命名空间;

//此类用来反序列化客户端json字符串
class Person
{
string name;

int age;

string memo;

public string Name
{
get { return name; }
set { name = value; }
}

public int Age
{
get { return age; }
set { age = value; }
}

public string Memo
{
get { return memo; }
set { memo = value; }
}
}

...
//以下为后台一般处理程序的代码片段
//接收json形式的字符串参数
Stream stream = context.Request.InputStream;
StreamReader sReader = new StreamReader(stream);
string jsonString = string.Empty;
while (sReader.Peek() != -1)
{
jsonString = sReader.ReadToEnd();
}

//将json字符串转换为对象
Person person = JsonConvert.DeserializeObject<Person>(jsonString);
string name = person.Name;
int age = person.Age;
person.Memo = "成功接收数据....";

//将对象转化成json数据并以json字符串的形式回发给客户端
string jsonData = JsonConvert.SerializeObject(person);
context.Response.ContentType = "application/json";
context.Response.Write(jsonData);

这是我的山寨版的解决办法,如果有便捷的请知道的兄弟不吝的告诉我一声,因为在Ext的后台貌似直接 contex.Request["字段名"]就可以取到前台的值,我还不知道是怎么回事,再次感谢!
flyerwing 2011-10-19
  • 打赏
  • 举报
回复
JSON就是字符串吧。
GDY__GDY 2011-10-19
  • 打赏
  • 举报
回复
我在网上查资料 Newtonsoft.Json.dll这个dll中的方法可以将json字符串实例化成对象,但是我在extjs的后台代码中发现 取一个字段的时候直接 context.Request["字段名"] 就可以,那么是怎么做到的呢?
GDY__GDY 2011-10-19
  • 打赏
  • 举报
回复
多谢楼上的兄台,不过第二个我理解的意思是需要对应的语言有一个能处理 接收到的json字符串 的功能对吧,不过我还是没有弄太清晰,兄台能不能说的具体点,谢谢啦
dralion 2011-10-19
  • 打赏
  • 举报
回复
var name = document.getElementById("name").value;
var age = document.getElementById("age").value;
var json = "{\"name\":"+name+",\"age\":"+age+"}";
hack_pan 2011-10-18
  • 打赏
  • 举报
回复
1、从服务器回发回来的json格式的字符串该如何处理;

var data; //假设data是json类型数据
data = eval(data); //这样就可以了
data.名称//如果json只有一层

for (var i = 0; i < data.length; i++) {//json多层
var row = data[i];
row.名称
}


2、如何将json数据提交到服务器并在服务器端解析json数据
那需要对应的语言去处理。。。

C#中是
object obj= jss.DesSerializer(json);//反向序列化

52,787

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧