一、json的拼装:
引包:org.json.jar
创建JSONObject对象
调用JSONObject对象的put方法进行json数据的拼装
如果想要拼装json数组,则需要创建一个JSONArray对象:
- public class SendJSON {
- public static void main(String[] args) throws JSONException {
- // TODO Auto-generated method stub
- //创建JSON对象
- JSONObject jsonObject = new JSONObject();
- //创建用户实名信息JSON对象
- JSONObject jsonObjectUserIDInfo = new JSONObject();
- //json数组
- JSONArray jsonArray = new JSONArray();
- //组装json数组
- jsonObjectUserIDInfo.put("name", "zhangSan");
- jsonObjectUserIDInfo.put("idtype", "身份证");
- jsonObjectUserIDInfo.put("idnum", "11111");
- jsonArray.put(jsonObjectUserIDInfo);
- jsonObject.put("userIDInfo", jsonArray);
- jsonObject.put("sex", "男");
- System.out.println(jsonObject);
- ReceiveJson json = new ReceiveJson();
- //json.test(jsonObject);
- }
- }
这样便是创建了含有json对象、json数组的json串。
二、json的解析:
通常,我们在编写前端向后台传值或者是编写测试类的时候,会事先写好一个json对象进行传递,那么我们的后台接收到这个json对象后,想要从中取出具体的值,那该怎么做?请看案例:
1、工欲善其事,必先利其器。要完成解析工作,我们首先要准备好需要的jar包:org.json.jar即可。将jar包加载进工程后,我们便可根据自己的需要进行json解析了。
2、假设有如下json对象:
{"userIDInfo":{"name":"zhangsSan","idtype":"IDCard","idnum":"3602001"},
"age":23,
"sex":"man"}
3、后台接收这个json对象开始解析
- public String identityRecognition(
- JSONObject jsonObject) {
- //解析出用户实名信息的值
- JSONObject userInfo = (JSONObject) jsonObject.get("userIDInfo");
- String name = userInfo.get("name").toString();
- tring name = jsonObject.get("age").toString();
在这里我们是怎么解析的?答案很简单,就是利用你接受到的jsonObject的get方法即可。这是解析json对象的方法。
如果说是一个json数组呢?该如何解析?
有一个json数组:{"sex":"男","userIDInfo":[{"idtype":"身份证","name":"zhangSan","idnum":"11111"}]}
后台解析代码:
- public class ReceiveJson {
- public void test(JSONObject jsonObject) throws JSONException{
- JSONArray jsonarray = (JSONArray)jsonObject.get("userIDInfo");
- System.out.println(jsonarray.get(0));
- JSONObject jsontestJsonObject = (JSONObject)jsonarray.get(0);
- System.out.println(jsontestJsonObject.get("name"));
- }
- }
另外补充一个小知识点,这个在实际编程中还是挺有用处的,就是Java字符串转成json对象
JSONObject jsonObject = new JSONObject(jsonString);
这个jsonString就是一个字符串形式的json,只要放在JSONObject的构造方法中,就可以得到一个json对象了,直接System.out.println(jsonObject)就可以得到了。