Json常用代码

FastJson依赖包:

    <!-- fastjson依赖 -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.76</version>
    </dependency>

示例Bean

先创建Person类,如下:

public class Person {

    private int age;

    private String fullName;

    @JSONField(format="yyyy-MM-dd hh:mm:ss")
    private Date dateOfBirth;

    // 忽略 getters & setters
}

Java 对象转换

Java 对象转换为 JSON字符串

JSON.toJSONString() 将 Java 对象(或集合)转换换为 JSON字符串。
假设person为Java对象,则如下:

    String jsonStr= JSON.toJSONString( person);

List等集合转换为JSON字符串,也可以用 JSON.toJSONString.

Java 对象 转 JSONObject:

JSONObject json = (JSONObject) JSONObject.toJSON(person);

JSONObject 转换

JSONObject 转换成 JSON字符串

JSONObject json = new JSONObject();
//忽略json的取值过程
String jsonStr = json.toString();

JSONObject 转换成 Java对象

JSONObject json = new JSONObject();
json.put("age", 1);
Person person = JSON.parseObject(json.toJSONString(), Person.class);

JSON 字符串转换

JSON 字符串转换成Java对象。

parseObject 方法可以将 JSON 字符串转换成Java对象。
假设JSON字符串为jsonStr,如下:

    Person newPerson = JSON.parseObject( jsonStr, Person.class);

JSON 字符串转换成JSONObject对象

   JSONObject paramJson= JSON.parseObject(jsonStr);

list转JSON字符串:

map转JSON字符串也可以用。

String jsonStr = JSON.toJSONString(list);

JSON字符串转list:

List<String> strList = JSON.parseObject(jsonStr, new TypeReference<List<String>>() {});
if (strList  == null ) {
	strList = new ArrayList<>();
}

JSON字符串转map:

Map<String, Integer> map = JSON.parseObject(jsonStr, new TypeReference<Map<String, Integer>>() {});

JSON字符串转泛型对象:

其他的泛型对象,类似于JSON字符串转map,都可以采用以下的TypeReference泛型进行转换。

List<Person> resultList = JSON.parseObject(jsonStr, new TypeReference<List<Person>>() {});

java对象的字段指定json字段名称

@JSONField用在java对象的变量上面,这里的name表示的是转换后的JSON字段。

    @JSONField(name = "FULL NAME")
    private String fullName;

java对象的Date变量转换成Json并格式化

    @JSONField(format="yyyy-MM-dd hh:mm:ss")
    private Date dateOfBirth;

@JSONField用在java对象的变量上面,这里的name表示的是转换后的JSON字段,格式则用format处理。

如果项目中使用的是jackSon,就用

@JsonProperty(value = "DATE OF BIRTH")
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private Date dateOfBirth;

JSONObject获取元素的值

  • JSONObject获取字符串:
String fullName = json.getString("fullName");
  • JSONObject获取整型:
int age = json.getInt("age");

JSONObject移除元素

可以用remove()方法移除JSONObject的某个键值。

	public static void main(String[] args) {
		String str="{\"buyerTaxNo\": \"440301999999980\",\"errorIds\": \"123\"}";
		JSONObject jsonObject= JSON.parseObject(str);
		jsonObject.remove("errorIds");
		System.out.println(jsonObject);
	}    

JSONArray

JSONArray转化为List

JSONArray格式如下:

{
  "clientList": [ "数组元素1","数组元素2" ]
} 

解析代码如下:

   	  String clientIdJson=orderJson.getString("clientList");
	  List<String> clientIdList= JSONArray.parseArray(clientIdJson,String.class);

List转化为JSONArray:

JSONArray jsonArray =JSON.parseArray(JSON.toJSONString(list));

遍历JSONArray

   for(int i=0;i<jsonArray.size();i++){
        JSONObject jsonobject=jsonArray.getJSONObject(i);
            
    }

参考资料:

http://www.runoob.com/w3cnote/fastjson-intro.html

posted on   乐之者v  阅读(2066)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2018-04-20 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示