一、json的拼装:
引包:org.json.jar
创建JSONObject对象
调用JSONObject对象的put方法进行json数据的拼装
如果想要拼装json数组,则需要创建一个JSONArray对象:
code:
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();
String 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)就可以得到了。
关于json的东西,就先写到这里,告一段落吧,有什么补充的,再往这里写、、、