博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
操作JSON对象
阅读量:7101 次
发布时间:2019-06-28

本文共 2425 字,大约阅读时间需要 8 分钟。

JSON类型对象,最简单了,就是键值对,key:value、key:value、一直不停地key:value下去,层层嵌套,理论上多少层都可以,只要你喜欢。

可是,每次应用JSON,我都心烦意乱,甚至吓到面无人色。何哉?不懂咯,没有真正理解咯,拿到一个JSON对象,不知道如何去使用它,如何去读取里面的数据。

只能够一点一点地记录一些心得,期待量变达成质变,化蛹成蝶,肩胛骨处长出一对翅膀来。

1、JS里面使用

1)用key直接访问对应的value

比如:

var jsonobj ={"total":106,"rows":[{},{},{}.....]}alert(jsonobj.total);
2)遍历key

var smsTypeDesc = {"4":"回访短信","3":"邮件短信","aa":"测试短信"};  function EnumaKey(){      for(var key in smsTypeDesc){          alert(key);      }  }  function GetVal(){      var key = prompt("请输入要查询的key","4");                  if("undefined"==typeof(smsTypeDesc)) return;      if("undefined"==typeof(smsTypeDesc[key])){          alert("输入的key:"+key+", 在json对象中不存在!");          return;      }         alert("您输入的key是:"+key + ",该key所对应的值是:"+smsTypeDesc[key]);  }  function GetValByKey(){      alert(smsTypeDesc.aa);  }
本例子摘自 

3、提交或获取服务器端的JSON数据

$.ajax({    url: "/api/customview/SetTags?account=" + _index_account,    data: JSON.stringify(effectRow),    dataType: "json",    type: "POST",    contentType: "application/json; charset=utf-8",    success: function (data) {        _dg.datagrid('acceptChanges');        if (data == true) {            if (setTagsCallback != null) setTagsCallback();            alert("OK");        } else {            alert("failed");        }    },    error: function (XMLHttpRequest, textStatus, errorThrown) {        alert(textStatus + ": " + errorThrown);    }});

2、.NET里使用

.NET中操作JSON,非newtonsoft.json莫属。

newtonsoft.json里面的类型,目前来看,有以下类型:

JObject

 用于操作JSON对象

JArray
 用语操作JSON数组
JValue
 表示数组中的值
JProperty
 表示对象中的属性,以"key/value"形式
JToken
 用于存放Linq to JSON查询后的结果

参考文章:

有代码有J8:

[csharp] 
  1. using Newtonsoft.Json;  
  2.   
  3. JObject json = ...  
  4.   
  5. JToken[] jps = json["records"][0].ToArray();  
  6. List<ItemInfo> cols = json["columns"].ToObject<List<ItemInfo>>();  
  7.   
  8. ……  
  9.   
  10. JArray array = new JArray();  
  11. array.Add(data);  
  12. Tuple<int, JObject> tuple = customViewService.UpdateDataByView(ProjectId, account, array, viewId);  
  13. JObject ret = new JObject();  
  14. ret.Add(new JProperty("rows", array));  
  15. ret.Add(new JProperty("result", tuple.Item1 > 0));  

遍历,在不清楚该JSON的结构情况下:

[csharp] 
  1. JsonTextReader reader = new JsonTextReader(new StringReader(sjson));  
  2. StringBuilder sb = new StringBuilder("");  
  3. while (reader.Read())  
  4. {  
  5.     if (reader.Value != null)  
  6.         sb.Append(String.Format("Token: {0}, Value: {1}\r\n", reader.TokenType, reader.Value));  
  7.     else  
  8.         sb.Append(String.Format("Token: {0}\r\n", reader.TokenType));  
  9. }  

转载于:https://www.cnblogs.com/leftfist/p/4257800.html

你可能感兴趣的文章
tophat
查看>>
Codeforces Round #326 (Div. 2) A. Duff and Meat 水题
查看>>
Android屏幕适配全攻略(最权威的官方适配指导) (转)
查看>>
AutoMapper(七)
查看>>
内存数据库:memcached与redis技术的对比试验
查看>>
仿58同城UITableViewCell动画
查看>>
android service 的各种用法(IPC、AIDL)
查看>>
MongoDB聚合运算之mapReduce函数的使用(11)
查看>>
Android 屏蔽Power键 Home键
查看>>
python之装饰器
查看>>
泛型的基本介绍和使用
查看>>
新书《iOS8 Swift编程指南》货架
查看>>
Python与rrdtool的结合模块
查看>>
写贤治学生:关键是要管理好自己的时间
查看>>
iOS 自定义步骤进度条
查看>>
R: NULL, NA, and NaN
查看>>
线程池的设计和应用
查看>>
IntelliJ IDEA中怎样使用JUnit4
查看>>
php学习第一天-勤劳致富
查看>>
2016新年快乐
查看>>