首页 > 编程语言 > 详细

json字符串如何从字符转对象,对象转字符,转数组

时间:2021-01-09 23:09:00      阅读:28      评论:0      收藏:0      [点我收藏+]

前言

最近在开发过程中使用了大量的json作为前后端数据交换的方式,由于之前没有对json做过系统的学习,所有在使用过程中查阅了大量的文档与资料,这里主要记录了我在开发后对json以及fastjson使用的总结

JSON 介绍

JSON(javaScript Object Notation)是一种轻量级的数据交换格式。主要采用键值对({"name": "json"})的方式来保存和表示数据。JSONJS对象的字符串表示法,它使用文本表示一个JS对象的信息,本质上是一个字符串。更多简介见介绍JSON

fastjson 简介

在日志解析,前后端数据传输交互中,经常会遇到字符串(String)与json,XML等格式相互转换与解析,其中json以跨语言,跨前后端的优点在开发中被频繁使用,基本上可以说是标准的数据交换格式。fastjson是一个java语言编写的高性能且功能完善的JSON库,它采用一种“假定有序快速匹配”的算法,把JSON Parse 的性能提升到了极致。它的接口简单易用,已经被广泛使用在缓存序列化,协议交互,Web输出等各种应用场景中

fastjson 常用 API

fastjson API 入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。

public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray 
public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject    
public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean 
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray 
public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合 
public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 
public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本 
public static final Object toJSON(Object javaObject); //将JavaBean转换为JSONObject或者JSONArray。

fastjson 使用实例

现在pom.xml文件添加依赖

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.66</version>
</dependency>
测试需要的对象,Student.java
package com.test.json;
/**
student类(测试需要的对象)
*/
public class Student {
//必须要有空参构造、私有属性、标准的get/set
private String name;
private int age;
private int score;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public int getScore() {
return score;
}

public void setScore(int score) {
this.score = score;
}

@Override
public String toString() {
return "Student{" +
"name=‘" + name + ‘\‘‘ +
", age=" + age +
", score=" + score +
‘}‘;
}
}

测试json转化,JSONDemo.java
package com.lemon.json;
/**
测试fastjson,字符串专对象,对象转字符串
*/
import com.alibaba.fastjson.JSONObject;

import java.util.List;
import java.util.Map;

public class JSONdemo {
public static void main(String[] args) {
//1、json字符串-》java对象 {"name": "张三", "age": 18, "score":100}
String jsonStr = "{\"name\": \"张三\", \"age\": 18, \"score\":100}";
//parseObject(json字符串,需要转换的java类.class)
Student s = JSONObject.parseObject(jsonStr,Student.class);
System.out.println(s);
//
Map<String,Object> map = JSONObject.parseObject(jsonStr, Map.class);
System.out.println(map);
//
// //2、java对象 -> json字符串
// //s -> jsonStr
System.out.println(JSONObject.toJSONString(s));
System.out.println(JSONObject.toJSONString(map));
//3、json数组字符串-》java集合对象
String jsonStr =
"[{\"name\": \"张三\", \"age\": 18, \"score\":100}," +
"{\"name\": \"老王\", \"age\": 38, \"score\":10}]";
List<Student> students = JSONObject.parseArray(jsonStr, Student.class);
System.out.println(students);

System.out.println(JSONObject.toJSONString(students));
}
}
原创作者出处:https://www.cnblogs.com/dmego/p/9033080.html

json字符串如何从字符转对象,对象转字符,转数组

原文:https://www.cnblogs.com/zhiyu07/p/14255902.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!