JSON数据转对象!

youzi520 2009-03-29 08:49:22
USER 对象

ID
NAME
SEX


前台传递了JSON数据{"ID":"1","NAME":"1","SEX":"1"},{"ID":"2","NAME":"2","SEX":"2"},{"ID":"3","NAME":"3","SEX":"3"}

后台我如何处理成3个USER对象?
...全文
606 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
youzi520 2009-06-23
  • 打赏
  • 举报
回复
多谢各位回复!最近忙刚来结帖..
Teng_s2000 2009-03-30
  • 打赏
  • 举报
回复
mark
orain 2009-03-30
  • 打赏
  • 举报
回复
使用 new DataContractJsonSerializer(typeof(List<UserDTO>))
youzi520 2009-03-30
  • 打赏
  • 举报
回复
我用的MVC 可以把单个对象转化

public class JsonBinder<T> : IModelBinder
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var param = new DataContractJsonSerializer(typeof(T))
.ReadObject(controllerContext.HttpContext.Request.InputStream);

return param;
}




}


ModelBinders.Binders[typeof(UserDTO)] = new JsonBinder<UserDTO>();


前台请求
{"ID":"1","NAME":"1","SEX":"1"}
------------------------------------------------------------
现在如果传递对象组 不知道处理了!!
{"ID":"1","NAME":"1","SEX":"1"},
{"ID":"2","NAME":"2","SEX":"2"},
{"ID":"3","NAME":"3","SEX":"3"}


后台如何得到IList<UserDTO>
orain 2009-03-29
  • 打赏
  • 举报
回复
如果你使用 .NET 3.5,倒是可以直接用 System.Runtime.Serialization.Json.DataContractJsonSerializer 对 JSON 进行序列化和反序列化,早期的版本只能自己做了。
来风了 2009-03-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 goghuaqiao 的回复:]
<script>
var USER= [
{"ID":"1","NAME":"1","SEX":"1"},
{"ID":"2","NAME":"2","SEX":"2"},
{"ID":"3","NAME":"3","SEX":"3"}
];
alert(USER[0].Name); "1"
alert(USER[1].Name); "2"
alert(USER[2].Name); "3"
</script>

JSON文本转换为对象,可以使用eval()函数
[/Quote]
来风了 2009-03-29
  • 打赏
  • 举报
回复
<script>
var USER= [
{"ID":"1","NAME":"1","SEX":"1"},
{"ID":"2","NAME":"2","SEX":"2"},
{"ID":"3","NAME":"3","SEX":"3"}
];
alert(USER[0].Name); 1
alert(USER[1].Name); 2
alert(USER[2].Name); 3
</script>
jfd198512 2009-03-29
  • 打赏
  • 举报
回复
顶 LZ!!
tabbycat 2009-03-29
  • 打赏
  • 举报
回复
JavaScriptSerializer

可以反序列化单个对象

.net 2.0 装AJAX
orain 2009-03-29
  • 打赏
  • 举报
回复
刚测试了下,代码如下:
static void Main(string[] args)
{
Person[] People = {
new Person(1, "A"),
new Person(2, "B"),
new Person(3, "C"),
new Person(4, "D"),
new Person(5, "E")
};

System.Runtime.Serialization.Json.DataContractJsonSerializer jsonFormator = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(Person[]));
byte[] buff = new byte[1024];
System.IO.Stream stream = new System.IO.MemoryStream(buff);
jsonFormator.WriteObject(stream, People); // 序列化
string str = System.Text.Encoding.UTF8.GetString(buff).TrimEnd('\0');
Console.WriteLine(str);
// 反序列化
System.IO.Stream rS = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(str));
Person[] persons = jsonFormator.ReadObject(rS) as Person[];
Console.WriteLine(persons[2].Name);
}

[System.Runtime.Serialization.DataContract] //必须加这个属性
class Person
{
[System.Runtime.Serialization.DataMember] // 该属性注明要序列化的成员
public int Id { get; set; }
[System.Runtime.Serialization.DataMember]
public string Name { get; set; }
public Person(int id, string name)
{
Id = id;
Name = name;
}
}
orain 2009-03-29
  • 打赏
  • 举报
回复
试下 DataContractJsonSerializer.ReadObject(Stream) 这个方法。
youzi520 2009-03-29
  • 打赏
  • 举报
回复
看了有将LIST对象列表转成JSON格式
但是JSON如何转成LIST对象!!

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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