java json格式的转换和读取
2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
package com.json;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.test.JsonHelper;
/**
?* 使用json-lib構(gòu)造和解析Json數(shù)據(jù)
?*? *
?*/
public class OrgJsonTest {
??? /**
???? * 構(gòu)造Json數(shù)據(jù)
???? *
???? * @return
???? * @throws JSONException
???? */
??? public static String BuildJson() throws JSONException {
??????? // JSON格式數(shù)據(jù)解析對象
??????? JSONObject jo = new JSONObject();
??????? // 下面構(gòu)造兩個map、一個list和一個Employee對象
??????? Map<String, String> map1 = new HashMap<String, String>();
??????? map1.put("name", "Alexia");
??????? map1.put("sex", "female");
??????? map1.put("age", "23");
??????? Map<String, String> map2 = new HashMap<String, String>();
??????? map2.put("name", "Edward");
??????? map2.put("sex", "male");
??????? map2.put("age", "24");
??????? List<Map> list = new ArrayList<Map>();
??????? list.add(map1);
??????? list.add(map2);
??????? Employee employee = new Employee();
??????? employee.setName("wjl");
??????? employee.setSex("female");
??????? employee.setAge(24);
??????? // 將Map轉(zhuǎn)換為JSONArray數(shù)據(jù)
??????? JSONArray ja = new JSONArray();
??????? ja.put(map1);
??????? System.out.println("JSONArray對象數(shù)據(jù)格式:");
??????? System.out.println(ja.toString());
??????? // 將Javabean轉(zhuǎn)換為Json數(shù)據(jù)(需要Map中轉(zhuǎn))
??????? JSONObject jo1 = JsonHelper.toJSON(employee);
??????? System.out.println("\n僅含Employee對象的Json數(shù)據(jù)格式:");
??????? System.out.println(jo1.toString());
??????? // 構(gòu)造Json數(shù)據(jù),包括一個map和一個含Employee對象的Json數(shù)據(jù)
??????? jo.put("map", ja);
??????? jo.put("employee", jo1.toString());
??????? System.out.println("\n最終構(gòu)造的JSON數(shù)據(jù)格式:");
??????? System.out.println(jo.toString());
??????? return jo.toString();
??? }
??? /**
???? * 解析Json數(shù)據(jù)
???? *
???? * @param jsonString
???? *??????????? Json數(shù)據(jù)字符串
???? * @throws JSONException
???? * @throws ParseException
???? */
??? public static void ParseJson(String jsonString) throws JSONException,
??????????? ParseException {
??????? JSONObject jo = new JSONObject(jsonString);
??????? JSONArray ja = jo.getJSONArray("map");
??????? System.out.println("\n將Json數(shù)據(jù)解析為Map:");
??????? System.out.println("name: " + ja.getJSONObject(0).getString("name")
??????????????? + " sex: " + ja.getJSONObject(0).getString("sex") + " age: "
??????????????? + ja.getJSONObject(0).getInt("age"));
??????? String jsonStr = jo.getString("employee");
??????? Employee emp = new Employee();
??????? JsonHelper.toJavaBean(emp, jsonStr);
??????? System.out.println("\n將Json數(shù)據(jù)解析為Employee對象:");
??????? System.out.println("name: " + emp.getName() + " sex: " + emp.getSex()
??????????????? + " age: " + emp.getAge());
??? }
??? /**
???? * @param args
???? * @throws JSONException
???? * @throws ParseException
???? */
??? public static void main(String[] args) throws JSONException, ParseException {
??????? // TODO Auto-generated method stub
//??????? ParseJson(BuildJson());
??????? String str="{\"Key\":\"法院層級\",\"Value\":\"46839\",\"Child\":[{\"Key\":\"4\",\"Value\":\"38464\"},{\"Key\":\"3\",\"Value\":\"7901\"},{\"Key\":\"2\",\"Value\":\"474\"}]}";
??????? Map map=JsonHelper.toMap(str);
??????? String child=map.get("Child").toString();
??????? JsonHelper.toMap(child.substring(1,child.length()-1));
?????? ?
?????? ?
??? }
}
轉(zhuǎn)載于:https://my.oschina.net/u/2293326/blog/809076
總結(jié)
以上是生活随笔為你收集整理的java json格式的转换和读取的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jq实现跳转404跳转,原生js实现跳转
- 下一篇: 【Bootstrap-插件使用】Jcro