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

 我来答
紫轩玥桦
2017-11-03 · TA获得超过145个赞
知道小有建树答主
回答量:103
采纳率:62%
帮助的人:52.2万
展开全部

需要导入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!"}]}
江湖人称王嘉嘉
2017-11-03 · TA获得超过1400个赞
知道小有建树答主
回答量:1047
采纳率:83%
帮助的人:624万
展开全部
只要你的json格式是正确的,直接把这个json字符串用fastjson转换就可以了啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式