最近几天使用json的需求比较急迫,所以学习了一下json。此文仅当笔记,以防忘却。
此文主要分为js和java总结:
先介绍json格式:
JSON 数据的书写格式是:名称/值对。
***:可以更容易的理解json的嵌套格式。
JSON 值可以是:
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在方括号中) ***
- 对象(在花括号中) ***
- null
1. JS
JSON的全称为:JavaScript 对象表示法(JavaScript Object Notation)。
可见json开始是为js服务的,但在之后的发展中,逐渐成为了独立于各种语言的数据传输格式。
JS的使用主要分为:
1> 构造JSON数据单元
a.json属于js对象表示法,其初始化完全可以和对象一致,也就是说,当js对象完成初始化时,此对象就是一个json格式的数据单元。
b.eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:
var obj = eval ("(" + txt + ")");
c. JSON.parse(); 可以使字符串转化为JSON格式数据,亦可以理解为构造为一个js对象。
2>JSON对象解析为字符串
a. JSON.stringify(); 可以将json数据单元转化为字符串格式。
b. 对象数组转为的String转为JSON:
//ObjArrayString: {"accountName":"分类03","accountCode":"3236547896562323","accountId":"1720","defaultId":1},{"accountName":"kaihuhang02","accountCode":"3236896589875426","accountId":"1721","defaultId":0}
ObjectArray = JSON.parse("["+ObjArrayString+"]");
*JSON.parse()与JSON.stringify()方法都是浏览器自带的方法,但是ie8-不支持,需要引用 json.js 兼容。
2. JAVA
java中的json使用主要使用json-lib.jar包,其中封装一些可用的json方法。
主要使用的类有:JSONArray、JSONObject
JSONArray实现了List接口;
JOSNObject实现了Map接口;
* 故可以利用上转型直接赋值给list 或 map;
两者皆可以使用T.fromObject(String)实现字符串转化为相应的类;
JSONObject类可以在JSONArray.getJSONObject()获取;
JSONObject可以使用各种get方法获取其中的元素值。