javascript
JSON格式以及基本用法
一、JSON的標準格式
里面的是一個對象,如果是多個對象,則用逗號間隔,即{},{},這樣就組成了一個對象序列,為了辨別開始和結束,則需要加上[]才能進行傳遞,則實際傳遞的形式應該是[{},{}],如果只要傳遞一個對象,則{}的形式就可以了。接下來就是對象屬性的表現方式了,屬性必須在”“里面,屬性與值之間用:隔開,屬性之間用,來分隔,如果屬性的值為數組,則用[]包括起來,這樣實際傳遞的數據格式可能有:1、{“屬性1”:值1,”屬性2”:值2},如果值為字符串,則也需要用”“括起來(下同)。2、{“屬性1”:值1,”屬性2”:[值1,值2]},其中屬性2是一個數組,包含了值1和值2。3、{“屬性1”:值1,”屬性2”:{“屬性a”:值a,”屬性b”:[值b,值c]}},這個比較復雜了,屬性2是個對象,這個對象由包含屬性a和屬性b,屬性b又是一個數組包含值b和值c。我想這些應該是最基本了,其余的就是在此基礎上的拓展而已。
二、JSON與其他格式的互相轉化
【jAVA————->JSON】
/***后臺怎么拼裝JSON格式的字符串*/public String javaToJSON() {JSONObject jsonObj = new JSONObject();jsonObj.put("username", "張三");jsonObj.put("password", "123456");return jsonObj.toString();//{"password", "123456","username", "張三"} }【JSON———–>XML】
/***JSON格式的字符串轉換成XML格式的字符串*/public String jsonToXML() {String jsonStr = "{\"password\":\"123456\",\"username\":\"張三\"}";JSONObject json = JSONObject.fromString(jsonStr);XMLSerializer xmlSerializer = new XMLSerializer();xmlSerializer.setRootName("user_info");xmlSerializer.setTypeHintsEnabled(false);String xml = xmlSerializer.write(json);return xml; }返回結果;
<?xml version="1.0" encoding="utf-8"?> <user_info><password>123456</password><username>劉夢冰</username> </user_info>【XML———–>JSON】
/***XML格式的字符串轉換成JSON格式的字符串*/ public String xmlToJSON(){String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><user_info><password>123456</password><username>張三</username></user_info>";JSON json=XMLSerializer.read(xml);return json.toString(); }public mapToJSON(Map<Object,Object>map) {return JSONObject.fromobject(map).tostring(); }
【Map ———->json:】
/** * 將map集合轉換為json語句表示 * * @param map 集合 * @return 得到的Map解析的json語句 */ public String mapToJson(Map<Object, Object> map) {JSONObject jsonObject = JSONObject.fromObject(map); //將集合解析為 json對象語句(net.sf.json.JSONObject)return jsonObject.toString(); //返回json語句 }【json————>Map:】
/** * 將json格式封裝的字符串數據轉換成java中的Map數據 * @return */ private Map<Object, Object> jsonToMap(String json) { Map<Object, Object> map = new HashMap<Object, Object>(); JSONObject jsonMap = JSONObject.fromObject(json); JSONObject(net.sf.json.JSONObject)Iterator<String> it = jsonMap.keys(); while(it.hasNext()) { String key = (String) it.next(); String value = JSONObject.fromObject(jsonMap.get(key));map.put(key, value); } return map; }【JSON————->List】
/** * 將json格式封裝的列表數據轉換成java的List數據 * @return */ private static Object JSON2List(String json) { return JSONArray.toList(JSONArray.fromObject(json)); }【JSON——->簡單JavaBean/復雜JavaBean】
/*** 只包含基本數據類型的簡單實體類(getter、setetr方法略)*/ public class SimpleUser {private int id;private String name;private String sex;private int age;private String province;}/*** 包含復雜類型的實體類*/ public class ComplexUser extends SimpleUser {private List<String> address;public ComplexUser() {}public ComplexUser(int id, String name,String sex, int age, String province,List<String> address) {super(id, name, sex, age, province);this.address = address;}public List<String> getAddress() {return address;}public void setAddress(List<String> address) {this.address = address;}}【JSON————->簡單JavaBean】
/** * 將json格式封裝的簡單實體類型數據轉換成簡單類型的javabean(只包含簡單的數據類型)*/ private Object JSONtoSimpleBean() { String jsonStr = "{\"age\":23,\"id\":123,\"name\":\"tt_2009\"," + "\"province\":\"上海\",\"sex\":\"男\"}"; JSONObject jsonBean = JSONObject.fromObject(jsonStr); return JSONObject.toBean(jsonBean, SimpleUser.class); }【JSON—————->復雜JavaBean】
/** * 將json格式封裝的復雜實體數據轉換成復雜類型的javabean(對象中包含其它復雜對象,如收貨地址用List存儲)*/ private static Object JSON2ComplexBean() { String jsonStr = "{\"address\":[\"北京\",\"上海\",\"廣州\"]," + "\"age\":23,\"id\":123,\"name\":\"tt_2009\",\"province\":\"上海\",\"sex\":\"男\"}"; JSONObject jsonBean = JSONObject.fromObject(jsonStr); return JSONObject.toBean(jsonBean, ComplexUser.class); }總結
以上是生活随笔為你收集整理的JSON格式以及基本用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决项目莫名奇妙的报错问题
- 下一篇: 修改linux最大连接数