在c#中如何操作json

szjarvis 2015-05-18 10:40:28
json格式的字符串,如:
string str = "{\"type\":\"0\",\"data\":[{\"uId\":\"zmt\",\"userPw\":\"111111\",\"userName\":\"zmt梦\",\"status\":\"0\"}]}";

这样的字符串,如何操作?
...全文
146 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
szjarvis 2015-05-18
  • 打赏
  • 举报
回复
//str = "{\"type\":\"1\",\"data\":\"dddd\"}"; 上面这种情况是可以正常转换成类的, 但下面这种情况就不行了, string str = "{\"type\":\"0\",\"data\":[{\"uId\":\"zmt\",\"userPw\":\"111111\",\"userName\":\"zmt梦\",\"status\":\"0\",\"orgId\":\"00360000000000000000\",\"phone\":\"18673196526\",\"email\":\"11111111@qq.com\"}]}"; 对像是这样定义的: public class UserInfo { public int type { get; set; } public UserData data { get; set; } } public class UserData { public string uid { get; set; } public string userpw { get; set; } public string username { get; set; } public string status { get; set; } public string orgid { get; set; } public string phone { get; set; } public string email { get; set; } } 请各位帮忙指点一下。
梨花树下思考 2015-05-18
  • 打赏
  • 举报
回复
Newtonsoft.Json
江南小鱼 2015-05-18
  • 打赏
  • 举报
回复
引用 5 楼 starfd 的回复:
Newtonsoft.Json
+1

public class Data {
	public string uId  { get; set; }
	public string userPw  { get; set; }
	public string userName  { get; set; }
	public string status  { get; set; }
}
//定义实体类
public class RootObject {
	public string type  { get; set; }
	public List<Data> data { get; set; }
}
//使用Newtonsoft.Json解析
RootObject ro = JsonConvert.DeserializeObject<RootObject>(Json字符串);
  • 打赏
  • 举报
回复
Newtonsoft.Json
szjarvis 2015-05-18
  • 打赏
  • 举报
回复
没搞懂在哪下载楼上说的。 在网上找了一个别人写的转换类: /// <summary> /// 把JSON字符串还原为对象 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <param name="szJson">JSON字符串</param> /// <returns>对象实体</returns> public static T ParseFormJson<T>(string szJson) { T obj = Activator.CreateInstance<T>(); using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson))) { DataContractJsonSerializer dcj = new DataContractJsonSerializer(typeof(T)); return (T)dcj.ReadObject(ms); } } 但是这样好像不行,反回的类是null.
你家的阿柒丶 2015-05-18
  • 打赏
  • 举报
回复
//直接测试 var str = "{\"type\":\"0\",\"data\":[{\"uId\":\"zmt\",\"userPw\":\"111111\",\"userName\":\"zmt梦\",\"status\":\"0\"}]}"; var obj = eval("(" + str + ")"); alert("type:" + obj["type"] + "data:{ " + "uId:" + obj["data"][0]["uId"] + "userPw:" + obj["data"][0]["userPw"] + "userName:" + obj["data"][0]["userName"] + "status:" + obj["data"][0]["status"] + "}");
宝_爸 2015-05-18
  • 打赏
  • 举报
回复
转换成object,然后操作object. 可以使用Json.net类库(就是ls说的Newtonsoft.Json ). http://www.newtonsoft.com/json
moonwrite 2015-05-18
  • 打赏
  • 举报
回复
用Newtonsoft.Json 转成实体类 然后用linq 最后又转成string
szjarvis 2015-05-18
  • 打赏
  • 举报
回复
终于成功了,data中不能有 [ ] 这两个,去掉就可以了。 谢谢各位的指点。
landry1234 2015-05-18
  • 打赏
  • 举报
回复
用Newtonsoft.Json或LitJson, 转换成实体对象HashTable List Dictionary 或者具体的类对象,操作简单,我个人比较喜欢用Hashtable

62,041

社区成员

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

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

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

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