JSON使用概述

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字符串。

使用步骤:

  1. jar包:gson-2.8.6.jar
  2. 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));

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笑谈子云亭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值