JSONObject只是一种数据结构,可以理解为JSON格式的数据结构(key-value 结构),可以使用put方法给json对象添加元素。JSONObject可以很方便的转换成字符串,也可以很方便的把其他对象转换成JSONObject对象。
pom:
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.28</version></dependency>
1.通过原生生成json数据格式。
JSONObject zhangsan = new JSONObject();try {//添加zhangsan.put("name", "张三");zhangsan.put("age", 18.4);zhangsan.put("birthday", "1900-20-03");zhangsan.put("majar", new String[] {"哈哈","嘿嘿"});zhangsan.put("null", null);zhangsan.put("house", false);System.out.println(zhangsan.toString());} catch (JSONException e) {e.printStackTrace();}
2.通过hashMap数据结构生成
HashMap<String, Object> zhangsan = new HashMap<>();zhangsan.put("name", "张三");zhangsan.put("age", 18.4);zhangsan.put("birthday", "1900-20-03");zhangsan.put("majar", new String[] {"哈哈","嘿嘿"});zhangsan.put("null", null);zhangsan.put("house", false);System.out.println(new JSONObject(zhangsan).toString());
3.通过实体生成
Student student = new Student();student.setId(1);student.setAge("20");student.setName("张三");//生成json格式System.out.println(JSON.toJSON(student));//对象转成stringString stuString = JSONObject.toJSONString(student);
4.JSON字符串转换成JSON对象
String studentString = "{\"id\":1,\"age\":2,\"name\":\"zhang\"}";//JSON字符串转换成JSON对象JSONObject jsonObject1 = JSONObject.parseObject(stuString);System.out.println(jsonObject1);
5.list对象转listJson
ArrayList<Student> studentLsit = new ArrayList<>();Student student1 = new Student();student1.setId(1);student1.setAge("20");student1.setName("asdasdasd");studentLsit.add(student1);Student student2 = new Student();student2.setId(2);student2.setAge("20");student2.setName("aaaa:;aaa");studentLsit.add(student2);//list转json字符串String string = JSON.toJSON(studentLsit).toString();System.out.println(string);//json字符串转listJson格式JSONArray jsonArray = JSONObject.parseArray(string);System.out.println(jsonArray);
6.JSON 字符串转换为 Java 对象
@Testpublic void whenJson_thanConvertToObjectCorrect() {Person person = new Person(20, "John", "Doe", new Date());String jsonObject = JSON.toJSONString(person);Person newPerson = JSON.parseObject(jsonObject, Person.class);assertEquals(newPerson.getAge(), 0); // 如果我们设置系列化为 falseassertEquals(newPerson.getFullName(), listOfPersons.get(0).getFullName());}
原文链接:https://blog.csdn.net/u012448904/article/details/84292821
