如何转换string到一个带list属性的对象 fastjson

发布网友 发布时间:2022-04-22 22:43

我来回答

2个回答

热心网友 时间:2022-04-24 06:09

需要导入fastjson所需要的jar包,具体为json-lib-2.3-jdk15.jar 、commons-beanutils-1.7.0.jar 、commons-httpclient-3.1.jar 、commons-lang-2.3.jar 、commons-logging-1.0.4.jar 、commons-collections-3.1.jar 、ezmorph-1.0.3.jar 、fastjson-1.1.6.jar。

具体代码如下:

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

import org.junit.Test;

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

public class JedisTest {

@SuppressWarnings("unchecked")
@Test
public <T> void strToJson() {

 /*
 * 模拟fastjson数据
 */

HashMap<String, String> user1 = new HashMap<>();
user1.put("id", "1");
user1.put("name", "a");
user1.put("sex", "男");
HashMap<String, String> user2 = new HashMap<>();
user2.put("id", "2");
user2.put("name", "3");
user2.put("sex", "女");
List<T> list = new ArrayList<>();
list.add((T) user1);
list.add((T) user2);
Map<String, T> map = new HashMap<>();
map.put("list", (T) list);
JSONObject jsons = (JSONObject) JSON.toJSON(map);
System.out.println("输出结果为:");
System.out.println(jsons);

/*
 * 封装需要字符串
 */
Map<String, T> ress = JSON.toJavaObject(jsons, Map.class);

List<T> result = (List<T>) ress.get("list");

// 需要加入的String
String str = "Hello World!";

// 加入方式建议给一个键值
HashMap<String, String> say = new HashMap<>();
say.put("key", str);
result.add((T) say);

// 重新装载
ress = new HashMap<>();
ress.put("list", (T) result);
JSONObject json = (JSONObject) JSON.toJSON(ress);
System.out.println("处理过后的json数据:");
System.out.println(json);

}
}

下面是测试结果:
输出结果为:
{"list":[{"id":"1","name":"a","sex":"男"},{"id":"2","name":"3","sex":"女"}]}
处理过后的json数据:
{"list":[{"id":"1","name":"a","sex":"男"},{"id":"2","name":"3","sex":"女"},{"key":"Hello World!"}]}

热心网友 时间:2022-04-24 07:27

只要你的json格式是正确的,直接把这个json字符串用fastjson转换就可以了啊。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com