json-lib中的JSONObject和JSONArray
2016-02-04 23:01
363 查看
json-lib是用来完成beans,collections,maps,java数组 ,XML与JSON之间互相转换的jar包,json-lib依赖于其它几个jar包(我试过所有的jar包都用最新版本的,结果是会报错的,这说明版本之间还是有配套关系的,合适的才是最好的!),如下图所示,可以到这里下载!
而在json-lib中JSONObject和JSONArray是用得很频繁的两个类。
JSONObject是无序的键值对的集合,是用“花括号”括起来的一系列键值对;例如:{"id":"1","name":"jack","score":99}
JSONArray是有序的值的序列,是用“中括号”括起来的一个数组;例如:[{"id":"1","name":"jack","score":99}],或["zhangsan","lisi","wangwu"],又或
[{"id":"1","name":"jack","score":99},{"id":"2","name":"rose","score":88}]
JSONObject只能表示一个JSON对象,例如:{"id":"1","name":"张三","age":20,"salary":6000};多个JSON对象就要用JSONArray的方式表示(JSONArray中可以有多个JSON对象),例如:[{"id":"1","age":20,"name":"张三","salary":6000},{"id":"2","age":30,"name":"李四","salary":9000},{"id":"3","age":40,"name":"王五","salary":12000}]。一个JSON对象既可以用JSONObject表示,也可以用JSONArray表示;多个JSON对象只能用JSONArray表示,JSONArray中可以装有多个JSON对象。
例如:如果这么写
就会报这样的错误
,说明多个Json对象就不能用JSONObject表示了。
应该这么写才对
不管后端是用JSONObject还是用JSONArray生成Json,传到前端的AJAX都是Java格式json的字符串,都要用eval函数将其解析为JS格式的Json对象才能在JS中正常的使用。
例如:
而在json-lib中JSONObject和JSONArray是用得很频繁的两个类。
JSONObject是无序的键值对的集合,是用“花括号”括起来的一系列键值对;例如:{"id":"1","name":"jack","score":99}
JSONArray是有序的值的序列,是用“中括号”括起来的一个数组;例如:[{"id":"1","name":"jack","score":99}],或["zhangsan","lisi","wangwu"],又或
[{"id":"1","name":"jack","score":99},{"id":"2","name":"rose","score":88}]
JSONObject只能表示一个JSON对象,例如:{"id":"1","name":"张三","age":20,"salary":6000};多个JSON对象就要用JSONArray的方式表示(JSONArray中可以有多个JSON对象),例如:[{"id":"1","age":20,"name":"张三","salary":6000},{"id":"2","age":30,"name":"李四","salary":9000},{"id":"3","age":40,"name":"王五","salary":12000}]。一个JSON对象既可以用JSONObject表示,也可以用JSONArray表示;多个JSON对象只能用JSONArray表示,JSONArray中可以装有多个JSON对象。
例如:如果这么写
就会报这样的错误
,说明多个Json对象就不能用JSONObject表示了。
应该这么写才对
List<Emp> emps=new ArrayList<Emp>(); Emp e1=new Emp("1","张三",20,6000); Emp e2=new Emp("2","李四",30,9000); Emp e3=new Emp("3","王五",40,12000); emps.add(e1); emps.add(e2); emps.add(e3); JSONArray jsonArray=JSONArray.fromObject(emps); String jsonJAVA=jsonArray.toString();
不管后端是用JSONObject还是用JSONArray生成Json,传到前端的AJAX都是Java格式json的字符串,都要用eval函数将其解析为JS格式的Json对象才能在JS中正常的使用。
例如:
ajax.onreadystatechange=function(){ if(ajax.readyState==4){ if(ajax.status==200){ var jsonJAVA=ajax.responseText;//得到后端传过来的Java格式的json字符串 var jsonJS=eval("("+jsonJAVA+")");//转换为JS格式的JSON对象
相关文章推荐
- 原生 Base64编解码 Objective-C与Swift
- Enum-枚举的正确使用Objective-C
- Objective-C 【OC语法:不能修改 某个对象的 结构体属性的 成员】
- php中将SimpleXMLElement Object数组转化为普通数组
- Objective-C Block对象
- TypeError: 'append' called on an object that does not implement interface FormData
- IOS开发:performSelector: withObject:afterDelay 的Object里传入多个参数
- Robust Object Tracking via Sparsity-based Collaborative Model
- Online Object Tracking: A Benchmark
- ES6学习——新加API:Object
- LDAP ObjectClass
- iOS入门学习(Objective-c类的声明与实现)
- Objective-C 中 +load 与 +initialize
- objective c 函数声明
- Objective-C与JavaScript交互的那些事
- OBJECT CACHING - .NET 4
- JSONObject和JSONArray的关系
- Vickate_AES加密与解密(Objective-C版),暂未实现与java的交互(求大神帮助)
- InitializeObjectAttributes 【MSDN翻译】
- Objective-C 语言总结