您的位置:首页 > Web前端 > JavaScript

常用的json与map互相转化,json与数组互相转化,json与list互相转化

2018-03-20 17:40 633 查看
用到是用的是阿里巴巴的Json包,叫Fastjson

下载jar地址是:https://github.com/alibaba/fastjson

参考文档链接:https://www.w3cschool.cn/fastjson/fastjson-quickstart.html

下面模拟数组转json,list转json

package com.test3;
import java.util.ArrayList;
import java.util.List;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

class User {
private String name;
private int age;

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;
}

@Override
public String toString() {
return "User [name=" + name + ", age=" + age + "]";
}
};

class UserGroup {
private String name;
//对象内置list
private List<User> users = new ArrayList<User>();

public String getName() {
return name;
}

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

public List<User> getUsers() {
return users;
}

public void setUsers(List<User> users) {
this.users = users;
}

@Override
public String toString() {
return "UserGroup [name=" + name + ", users=" + users + "]";
}
}

class FastJsonTest {
public static void main(String[] args) {
// 构建用户geust
User guestUser = new User();
guestUser.setName("guest");
guestUser.setAge(28);
// 构建用户root
User rootUser = new User();
rootUser.setName("root");
guestUser.setAge(35);
// 构建用户组对象
UserGroup group = new UserGroup();
group.setName("admin");
group.getUsers().add(guestUser);
group.getUsers().add(rootUser);
// 用户组对象转JSON串
String jsonString = JSON.toJSONString(group);
System.out.println("jsonString:" + jsonString);
// JSON串转用户组对象 (对象内置list)
UserGroup group2 = JSON.parseObject(jsonString, UserGroup.class);
System.out.println("group2:" + group2);

// 构建用户对象数组
User[] users = new User[2];
users[0] = guestUser;
users[1] = rootUser;
// 用户对象数组转JSON串
String jsonString2 = JSON.toJSONString(users);
System.out.println("jsonString2:" + jsonString2);
//方法一: JSON串转用户对象list
List<User> users2 = JSON.parseArray(jsonString2, User.class);
System.out.println("users2:" + users2);

//方法二:JSON串转数组,在通过数组编号获取到当个对象的值
JSONArray array = JSON.parseArray(jsonString2);

System.out.println(((JSONObject)array.get(0)).getString("name"));
System.out.println(((JSONObject)array.get(0)).getString("age"));
}
}


输出结果:

jsonString:{"name":"admin","users":[{"age":35,"name":"guest"},{"age":0,"name":"root"}]}
group2:UserGroup [name=admin, users=[User [name=guest, age=35], User [name=root, age=0]]]
jsonString2:[{"age":35,"name":"guest"},{"age":0,"name":"root"}]
users2:[User [name=guest, age=35], User [name=root, age=0]]
guest
35


下面是模拟list转json,map转json

package com.test3;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;

class UserTest{
private String name;
private String age;

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + "]";
}
}

public class JsonTest {

public static void main(String[] args) {
/*******************map转json*************************************/
Map<String, Object> map = new HashMap<>();
map.put("name", "tom");
map.put("age", "23");
//map转json
System.out.println(JSON.toJSON(map));
System.out.println(JSON.toJSONString(map));

/******************json转map****************************/
String json = "{\"name\":\"marry\",\"age\":\"24\"}";
Map<String, Object> dataMap = new HashMap<>();
//json转map
dataMap = JSON.parseObject(json);
System.out.println(dataMap.get("name"));
System.out.println(dataMap.get("age"));
/*********************list转json**********************************/
//制造json数据
List list = new ArrayList();
list.add(map);
list.add(dataMap);
//list转json
System.out.println(JSON.toJSONString(list));
/*********************json转list**********************************/
//json转list
List<UserTest> users=JSON.parseArray(JSON.toJSONString(list), UserTest.class);
System.out.println(users.get(0).toString());
System.out.println(users.get(1).toString());

}

}


输出结果:

{"name":"tom","age":"23"}
{"name":"tom","age":"23"}
marry
24
[{"name":"tom","age":"23"},{"name":"marry","age":"24"}]
User [name=tom, age=23]
User [name=marry, age=24]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: