您的位置:

Fastjson解析json指南

一、fastjson解析json文件

String json = "{\"name\":\"Jack\", \"age\":18}";
JSONObject jsonObject = JSON.parseObject(json);
String name = jsonObject.getString("name");
int age = jsonObject.getIntValue("age");
System.out.println(name + ", " + age); //输出 Jack, 18

我们首先需要将json字符串转换成JSONObject对象,然后通过getString和getIntValue等方法获取对应的值。

二、fastjson底层如何解析

Fastjson会将json字符串解析成一个树状结构的数据,每个节点都是JSON对象或JSON数组。通过递归遍历树状结构,fastjson就能将json字符串解析成一个java对象。

三、fastjson解析json数组

String json = "[{\"name\":\"Jack\", \"age\":18}, {\"name\":\"Tom\", \"age\":20}]";
JSONArray jsonArray = JSON.parseArray(json);
for (int i = 0; i < jsonArray.size(); i++) {
    JSONObject jsonObject = jsonArray.getJSONObject(i);
    String name = jsonObject.getString("name");
    int age = jsonObject.getIntValue("age");
    System.out.println(name + ", " + age);
}

解析json数组跟解析json对象类似,需要先通过JSON.parseArray将json字符串转换成JSONArray对象。然后可以通过循环遍历获取每个JSON对象,再通过getString和getIntValue等方法获取对应的值。

四、fastjson解析json整数最大值

String json = "{\"num\":2147483647}";
JSONObject jsonObject = JSON.parseObject(json);
int num = jsonObject.getIntValue("num");
System.out.println(num); //输出 2147483647

在fastjson中,如果json中的整数值超过了Java中int的最大值,fastjson会自动将其解析为long类型。

五、fastjson解析json字符串转成map

String json = "{\"name\":\"Jack\", \"age\":18}";
TypeReference
   > typeReference = new TypeReference
    
     >(){};
Map
       map = JSON.parseObject(json, typeReference);
String name = (String) map.get("name");
int age = (int) map.get("age");
System.out.println(name + ", " + age); //输出 Jack, 18

      
     
   

在解析json字符串时,我们也可以将其转换成Java的Map对象。这里我们需要使用TypeReference类指定map的key和value的类型。

六、fastjson解析json字符串

String json = "{\"name\":\"Jack\", \"age\":18}";
User user = JSON.parseObject(json, User.class);
System.out.println(user.getName() + ", " + user.getAge()); //输出 Jack, 18

我们也可以将json字符串直接转换成Java对象,此时需要制定目标对象的类型。Java对象中的属性名称需要跟json中的属性名称一致。

七、fastjson解析json字符串转成map

String json = "{\"name\":\"Jack\", \"age\":18}";
Map map = JSON.parseObject(json);
String name = (String) map.get("name");
int age = map.getIntValue("age");
System.out.println(name + ", " + age); //输出 Jack, 18

  

跟解析json对象类似,我们也可以将json字符串转换成map对象,然后通过get和getIntValue等方法获取对应的值。

八、FastJson解析json丢字段

有时候,在解析json字符串时,我们可能只需要其中的部分字段,而其他的字段可以忽略。这时我们可以使用Feature.IgnoreNotMatch参数,告诉fastjson忽略不存在的字段:

String json = "{\"name\":\"Jack\", \"age\":18}";
ParserConfig config = new ParserConfig();
config.setFieldBased(true);
JSONObject jsonObject = JSON.parseObject(json, config, Feature.IgnoreNotMatch);
String name = jsonObject.getString("name");
System.out.println(name); //输出 Jack

九、fastjson反序列化

fastjson还支持反序列化,即Java对象转换成json字符串。这可以通过toJSONString方法实现:

User user = new User("Jack", 18);
String json = JSON.toJSONString(user);
System.out.println(json); //输出 {"name":"Jack","age":18}

以上是对fastjson解析json的一些基础应用,除此之外,fastjson还有很多高级功能可供使用,如自定义序列化和反序列化等,能有效提升开发效率。

Fastjson解析json指南

2023-05-19
Java JSON解析库fastjson使用教程

2023-05-18
深度解析FastJson

2023-05-22
fastjson代码分析,fastjson trim

本文目录一览: 1、Android json解析架包(阿里巴巴的fastjson)处理是报异常。 2、复杂json怎么使用fastjson一次性提取出来 3、Jackson和FastJson性能谁更快

2023-12-08
Fastjson用法详解

2023-05-17
fastjson详解

2023-05-20
Android实战:使用fastjson解析JSON数据

一、 fastjson简介 fastjson是一个Java语言编写的高性能和通用的JSON序列化和反序列化类库,在阿里巴巴经济体的大力推动下成长为了业内流行的JSON库,具有反序列化飞速、易用性强、准

2023-12-08
深入理解fastjson

2023-05-21
关于fastjson读取json文件的信息

本文目录一览: 1、fastJson解析json对象 2、复杂json怎么使用fastjson一次性提取出来 3、fastjson如何读写json文件 4、fastjson怎么解析像“ 5、FastJ

2023-12-08
Fastjson使用详解

2023-05-21
SpringBoot与FastJSON的整合

2023-05-20
core解析json的笔记(c json解析)

本文目录一览: 1、如何解析json中map数据 2、fasterxml.jackson.core.jsonparser.feature是哪个jar包的 3、spring mvc 怎么获取json 4

2023-12-08
印象笔记记录java学习(Java成长笔记)

2022-11-12
Fastjson序列化全解析

2023-05-18
使用Fastjson将JSON转换为Java Map的最佳方

2023-05-19
fastjson对象转jsonobject详解

2023-05-18
快速入门:使用fastjsonjsonfield解析JSON

2023-05-16
fastjson使用详解

2023-05-23
Fastjson反序列化详解

2023-05-19
关于为什么代码里不要用fastjson的信息

2023-01-08