如何转换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转换就可以了啊。