JSON使用概述

huatechinfo
发布于 2021-3-23 14:21
浏览
1收藏

JavaScript Object Notation,js对象简谱,一种轻量级数据交换格式。

欧洲计算机协会制定的JS编程规范,2005-2006年开始推广。


1、对象格式
一个对象由一个大括号表示
括号中描述对象属性,通过键值对来描述对象属性
键与值之间用冒号连接,多个键值对之间用逗号分隔;
键值对中的键应该使用引号引住(通常Java中键值对中键不使用引号会报错,而JS中能够正确解析)
键值对中的值,可以是JS中的任意数据

JSON:
{
    "name":"金苹果",
    "info":"种苹果"
}
XML:
<apple>
    <name>"金苹果"</name>
    <info>"种苹果"</info>
</apple>
JS:
var apple={};
apple.name="金苹果";
apple.info="种苹果";
JAVA:
Apple apple=new Apple();
apple.setName="金苹果";
apple.setInfo="种苹果";

2、数组格式
在JSON格式中数组可以与对象互相嵌套。

[元素1,元素2,元素3,元素4......]

{
    "age": 10,
    "courses": [
        "语文",
        "数学",
        "英语"
    ],
    "name": "张三"
}


 3、JAVA与JSON转换
java中的对象快速的转为json格式字符串
json格式字符串转为java对象
Gson、阿里FastJson

4、Gson
最新jar包获取:https://github.com/google/gson

 

4.1 将对象转为json字符串。
使用步骤:

jar包:gson-2.8.6.jar
Gson对象,并调用方法toJSON():String jsonString=new Gson().toJSON(对象);

 

4.2 将json字符串转为对象。
使用步骤:

引入jar包:gson-2.8.6.jar
生成Gson对象,并调用方法fromJSON():对象=new Gson().fromJSON(JSON字符串,对象类型.class);
如果字符串中包含数组,会转换成为ArrayList集合。


==>>稳定性更好。

//对象转为JSON字符串
Student s1=new Student("张三",10, new String[]{"语文","数学","英语"});
String s = new Gson().toJson(s1);
System.out.println(s);
//JSON字符串转为对象
String ana="{\"name\":\"张三\",\"age\":10,\"courses\":[\"语文\",\"数学\",\"英语\"]}";
Student student = new Gson().fromJson(ana, Student.class);
//对象中的数组转换回来变成了ArrayList
List<String> courses= Arrays.asList(student.getCourses());
System.out.println(courses.get(0));

5、FastJson
最新jar包获取:https://github.com/alibaba/fastjson

 

5.1 将对象转为json字符串
使用步骤:

引入jar包:fastjson-1.2.70.jar
调用静态方法toJSONString():String jsonString=JSON.toJSONString(对象);

 

5.2 将json字符串转为对象
使用步骤:

引入jar包:fastjson-1.2.70.jar
调用静态方法parseObject()或者parseArray():

类型 对象名=JSON.parseObject(JSON字符串,类型.class);   

List<类型> 对象名称=JSON.parseArray(JSON字符串,类型.class);

//对象转为JSON字符串
Student s1=new Student("张三",10, new String[]{"语文","数学","英语"});
String jsonString = JSON.toJSONString(s1);
System.out.println(jsonString);
//JSON字符串转为对象
String s="{\"age\":10,\"courses\":[\"语文\",\"数学\",\"英语\"],\"name\":\"张三\"}";
Student student = JSON.parseObject(s, Student.class);
System.out.println(student.getAge());
//对象中的数组转换回来变成了ArrayList
List<String> stringList= Arrays.asList(student.getCourses());
System.out.println(student.getCourses().getClass());
System.out.println(stringList.get(0));


版权声明:本文为博主「笑谈子云亭」的原创文章

分类
收藏 1
回复
举报
回复
    相关推荐