JSON 数据解析笔记
来源:互联网 发布:c语言汉化版 编辑:程序博客网 时间:2024/06/03 12:22
网上的酱油贴太多,自己调试了下,总结下JSON字符串的解析。
比如以下这个JSON数据字符串:
String jsonString="[{\"A1\":1,\"A2\":2,\"AList\":[{\"AA1\":\"aa1\",\"AA2\":\"aa2\"},{\"AB1\":\"ab1\",\"AB2\":\"ab2\"}]}]";
其JSON数据结构为:
- [
- {
- "A1":1,
- "A2":2,
- "AList":
- [
- {
- "AA1":"aa1",
- "AA2":"aa2"
- },
- {
- "AB1":"ab1",
- "AB2":"ab2"
- }
- ]
- }]
- “[]” 代表的是数组(JSONArray ),和各大语言中的数组定义一样一样的哈~
- “{}” 代表的是对象(JSONObject),大括号在各大语言中是类或者函数的域区分符,我们想到Class 是类,然后想到对象 object, 就可以形象生动的认为,大括号对之间的就是一个对象。
- 双引号在JSON中有两个作用:
- ----------1)所有属性名字都要用双引号
- ----------2)如果属性的值是字符串,也要用双引号
- 冒号 放在 属性 和 值 之间
- 逗号用于隔开每个属性,或者 是每个object
- 属性必须包含在object中,不能直接包含在数组中。
- 数组是指对象的数组,不是属性的数组。
还有2个规则 :
1)属性的值可以是一个数组,也可以是一个对象,但是不能是多个对象,(多个对象一定要建立数组)
2)一个JSON数据结构可以没有中括号,但是一般不可以没有{},因为对象是存放属性的最小单位。
另外解析的时候需要注意:
1)JSONArray 只可以用 元素下标来访问对象,并且其初始化用的的字符串必须要用“[”开头,“]”结尾。
比如:
- String jsonString="[{\"A1\":1,\"A2\":2,\"AList\":[{\"AA1\":\"aa1\",\"AA2\":\"aa2\"},{\"AB1\":\"ab1\",\"AB2\":\"ab2\"}]}]";
- JSONArray jsonGroupListByHeadLetter=new JSONArray(jsonString);
- JSONObject arrayGroupList= jsonGroupListByHeadLetter.getJSONObject(0);
2)JSONObject 只可以用属性名来访问,并且其初始化用的字符串必须要用"{"开头 ,“}” 结尾。
比如:
- String jsonString="{\"A1\":1,\"A2\":2,\"AList\":[{\"AA1\":\"aa1\",\"AA2\":\"aa2\"},{\"AB1\":\"ab1\",\"AB2\":\"ab2\"}]}";
- JSONObject obj= new JSONObject(jsonString);
- obj.getInt("A1");
3)如果我们要获得某个对象属性的值,必须要知道这个值是什么类型的(说明JSON没有多态性),比如你要取一个整型的值,那么必须要用
- aJSONObject.getInt("属性名");
- JSONObject arrayGroupList= jsonGroupListByHeadLetter.getJSONObject(0);
- JSONArray temp = arrayGroupList.getJSONArray("AList");
0 0
- JSON 数据解析笔记
- android笔记--JSON数据解析
- android笔记--JSON数据解析
- iphone学习笔记--JSON数据解析
- (mark 笔记)json数据解析
- Android笔记---解析JSON格式数据
- Android开发笔记之解析json数据
- Android学习笔记44:JSON数据解析
- Android笔记:Gsonformat解析Json数据
- json类型数据解析汇总--笔记
- android 学习笔记 解析json格式的数据 JSONObject 和GSON解析json格式数据
- Newtonsoft.Json解析json数据
- 使用Json解析Json数据
- ios学习笔记(三)-----json数据的解析
- iOS学习笔记(十一)——JSON数据解析
- iOS学习笔记(十一)——JSON数据解析
- iOS学习笔记(十一)——JSON数据解析
- Android基础笔记——JSONObject方式解析JSON数据
- 基于MFC的ActiveX控件开发
- dba_free_space中同一个file_id存在多条记录的问题
- IE9面向开发人员的ActiveX筛选
- Java 初探关于Data Structure
- Android版:验证手机号码的正则表达式
- JSON 数据解析笔记
- <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 的说明
- map: STL中map用法详解
- C语言判断文件夹或者文件是否存在的方法
- Highcharts 异步加载图表
- 最好的商业模式
- 浪潮称小型机服务器与IBM相当 正寻找并购目标
- weblogic 12C 布署的网站生成html(gb2312)乱码解决
- DNS分别在什么情况下使用UDP和TCP