Java中json使用与问题汇总

java

一、JSON 解析类库

     FastJson: 阿里巴巴开发的 JSON 库,性能十分优秀。

    在maven项目的pom文件中以下依赖

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>fastjson</artifactId>

<version>1.2.47</version>

</dependency>

二、编码与解码

1、编码

import com.alibaba.fastjson.JSONObject;

import java.util.Arrays;

import java.util.List;

public class JsonTest1 {

public static void main(String[] args) {

JSONObject object = new JSONObject();

object.put("String","String");

object.put("Integer",1);

object.put("boolean",true);

List<Integer> list = Arrays.asList(1,2,3,4,5);

object.put("list",list);

object.put(null,null);

System.out.println(object);

}

}

结果

{"Integer":1,"boolean":true,"String":"String","list":[1,2,3,4,5]}

2、解码

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONArray;

import com.alibaba.fastjson.JSONObject;

import java.lang.annotation.ElementType;

import java.util.Arrays;

import java.util.List;

public class JsonTest2 {

public static void main(String[] args) {

JSONObject object = JSONObject.parseObject("{\"boolean\":true,\"string\":\"string\",\"list\":[1,2,3],\"int\":2,\"test\":\"\"}");

//boolean

Boolean bl = object.getBooleanValue("boolean");

System.out.println(bl);

//String

String string = object.getString("String");

System.out.println(string);

//list

List lts = JSON.parseArray(object.getJSONArray("list").toJSONString(), Integer.class);

System.out.println(lts);

for (Object i : lts) {

System.out.println(i);

}

//Integer

Integer integer = object.getIntValue("2");

System.out.println(integer);

//没有这个key

String aa = object.getString("AA");

System.out.println(aa);

String bb = (String) object.get("aa");

System.out.println(bb);

//对应的key没有value

String dd = object.getString("test");

System.out.println(dd);

String cc = object.get("test").toString();

System.out.println(cc);

}

}

结果

true

null

[1, 2, 3]

1

2

3

0

null

null

最后2个的值为 " "

三、Json对象和字符串互相转换

https://www.runoob.com/w3cnote/java-json-instro.html

 四、关于JSON.toJSONString()的问题

原文:https://blog.csdn.net/weixin_43228497/article/details/87975659

4.1,第一种情况:
Activity activity=new Activity();
String str= JSON.toJSONString(activity);
此时,str是{}
第二种情况:
list list=new ArrayList();
String str= JSON.toJSONString(list);
此时,str是[]
第三种情况:
String str= JSON.toJSONString(null);
此时,str是null

4.2,怎么避免当list里面什么都没有的时候, JSON.toJSONString()之后是[]?
if(CollectionUtils.isEmpty(activityTypeDTOS)) {//加这个判断就可以了

五、JSON.toJSON().toString()与JSON.toJSONString()结果相同

import com.alibaba.fastjson.JSON;

import com..socialsecurity.domain.model.ABA1Entity;

import java.util.ArrayList;

public class JsonTest {

public static void main(String[] args) {

ABA1Entity aba1Entity1 = new ABA1Entity();

aba1Entity1.setAac002("2");

ABA1Entity aba1Entity2 = new ABA1Entity();

aba1Entity2.setAac002("3");

List<ABA1Entity> aba1EntityList = new ArrayList<>();

aba1EntityList.add(aba1Entity1);

aba1EntityList.add(aba1Entity2);

String json = JSON.toJSON(aba1EntityList).toString();

String json1 =JSON.toJSONString(aba1EntityList);

System.out.println(json);

System.out.println(json1);

}

}

结果

[{"aac002":"2"},{"aac002":"3"}]

[{"aac002":"2"},{"aac002":"3"}]

六、StringEscapeUtils.unescapeJava(jsonStr)去掉转义符

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONArray;

import com.alibaba.fastjson.JSONObject;

import com.socialsecurity.domain.model.Person2;

import groovy.json.StringEscapeUtils;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

public class Test {

public static void main(String[] args) {

List data = null;

Map<String, String> resultMap = new HashMap<>();

JSONArray objArray = new JSONArray();

resultMap.put("age", "aa");

resultMap.put("name", "bb");

String jsonObject = JSON.toJSONString(resultMap);

objArray.add(jsonObject);

System.out.println("objArray:"+objArray);

data = objArray;

String json = JSON.toJSON(data).toString();

System.out.println(json);

if (data.size() == 1) {

JSONObject json3 = JSONObject.parseObject((String) data.get(0));

String jsonStr = JSON.toJSON(json3).toString();

String json4 = StringEscapeUtils.unescapeJava(jsonStr);

System.out.println("data.get(0):"+jsonStr);

System.out.println("StringEscapeUtils.unescapeJava(jsonStr):"+json4);

}

Person2 person = new Person2();

person.setName("bb");

person.setAge("aa");

String json1 = JSON.toJSON(person).toString();

System.out.println("person:"+json1);

}

}

 结果:

objArray:["{\"name\":\"bb\",\"age\":\"aa\"}"]

["{\"name\":\"bb\",\"age\":\"aa\"}"]

data.get(0):{"name":"bb","age":"aa"}

StringEscapeUtils.unescapeJava(jsonStr):{"name":"bb","age":"aa"}

person:{"name":"bb","age":"aa"}

以上是 Java中json使用与问题汇总 的全部内容, 来源链接: utcz.com/z/391329.html

回到顶部