Java解析基于json-simple库,github地址。
https://github.com/fangyidong/json-simple
解析是把字符串变为json文件,或者把json文件变成字符串,然后取值。
package com.lovely.json;import java.io.IOException;
import java.io.StringWriter;
import java.util.Iterator;import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;public class JsonEncodeDemo {static JSONObject obj = new JSONObject();public static void main(String[] args) {// 2020/2/29try {test2();} catch (Exception e) {e.printStackTrace();}}@SuppressWarnings("unchecked")public static void test() {// 输出json字符串 obj.put("name", "foo");obj.put("num", new Integer(100));obj.put("balance", new Double(1000.21));obj.put("is_vip", new Boolean(true));System.out.print(obj.toJSONString());// {"balance":1000.21,"num":100,"is_vip":true,"name":"foo"}}@SuppressWarnings("unchecked")public static void test1() throws IOException {// json 对象流 用于写。obj.put("name", "jack");obj.put("gender", "male");obj.put("age", 11);obj.put("tel", 223);obj.put("phone", 666);StringWriter out = new StringWriter();obj.writeJSONString(out);String jsonText = out.toString();System.out.println(jsonText);// {"phone":666,"tel":223,"age":11,"name":"jack","gender":"male"}}public static void test2() {// 在 Java 中解码 JSON 使用JSONPARSER ---把json文件变成object,转型数组。不符合json格式的报错。/** 局限性,以json数组形式存在* * [{"id": "666", "author": "plus.Lee"},* {"id": "999", "author": "plus.catcher"}* ]* * [{"id": 1, "name": "qian"}, {"id": 2, "name": "plus"}]* * */String s = "";s = "[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]";JSONParser parser = new JSONParser();try {// 把json字符串转换成objObject obj = parser.parse(s);// 把obj转换为集合 JSONArray jsonArray = (JSONArray)obj;// 迭代器迭代集合, s里面有两个json对象 Iterator<?> iterator = jsonArray.iterator();while (iterator.hasNext()) {System.out.print(iterator.next() + "\t");}// 0 {"1":{"2":{"3":{"4":[5,{"6":7}]}}}} System.out.println();// 把数组转换为json对象JSONObject obj1 = (JSONObject)jsonArray.get(1);// 键--> 值System.out.println(obj1.get("1"));// {"2":{"3":{"4":[5,{"6":7}]}}} 其它key,value是nulls = "[{\"id\": 1, \"name\": \"qian\"}, {\"id\": 2, \"name\": \"plus\"}]";obj = parser.parse(s);System.out.println("qian&plus\t" + obj); // qian&plus [{"id":1,"name":"qian"},{"id":2,"name":"plus"}]jsonArray = (JSONArray)obj;obj1 = (JSONObject)jsonArray.get(1); // 叫plus的System.out.println(obj1.get("id") + "\t" + obj1.get("name")); // 2 pluss = "[{\"id\" : \"b_1\"} ,2]";obj = parser.parse(s);jsonArray = (JSONArray)obj;System.out.println(jsonArray.get(0) + "\t" + jsonArray.get(1));// {"id":"b_1"} 2// 下面的 1 和 1,7 json格式是有问题的,但是有结果s = "[1,]";obj = parser.parse(s);System.out.println(obj); // [1]s = "[1, ,7]";obj = parser.parse(s);System.out.println(obj);// [1,7]} catch (ParseException pe) {System.out.println("position:" + pe.getPosition());System.out.println(pe);}}}
啦啦啦,小伙伴们,给我建议,跟我交流鴨。( ̄︶ ̄*))