如何对json数据进行修剪

九点人 2014-07-05 02:44:23
由于方法提供的json数据中有我不想要的东西,有没有方法在java里对json 进行修改
例如json数据如下
[
{
"Name": "P1",
"UID": 1,
"Tasks": [
{
"Name": "task1",
"UID": "p1",
"Start": "2007-01-03T00:00:00",
"Finish": "2007-01-03T23:59:59",
"PercentComplete": 0,
"Duration": 86400,
"ParentUID": 1,
"_id": 1,
"__Index": 0
},
{
"Name": "task2",
"UID": "p2",
"Start": "2007-01-07T00:00:00",
"Finish": "2007-01-09T23:59:59",
"PercentComplete": 50,
"Duration": 259200,
"ParentUID": 1,
"_id": 2,
"__Index": 0
}
],
"_id": 1,
"_uid": 1,
"_pid": -1,
"_level": 0,
"_height": 27
},

{
"Name": "P4",
"UID": 4,
"Tasks": [],
"_id": 4,
"_uid": 4,
"_pid": -1,
"_level": 0
}
]

其中 "ParentUID": 1,
"_id": 1,
"__Index": 0
和 "_id": 4,
"_uid": 4,
"_pid": -1,
"_level": 0
数据都不是我需要。
我现在需要把json转化为一个list对象,
然后我定义的list对象只有
{Name: "P1", UID: 1,
Tasks: [
{Name: "task1", UID: "p1", Start: "2007-01-03T00:00:00", Finish: "2007-01-03T23:59:59", PercentComplete: 0, Duration: 1*24*3600},
]
},

这么多。所以我把最上面的json 转化为对象的过程,是出错的。
所以我需要对最上面的json进行修剪,把不需要的去掉,没有什么快捷的方法可以使用吗?
例如使用某些工具jar包,可以对其进行裁剪,等等的,求解答。
...全文
341 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zy_think123 2014-07-09
  • 打赏
  • 举报
回复
Province p1=new Province(1,"四川省");
  Province p2=new Province(1,"浙江省");
  Province p3=new Province(1,"山西省");
  List<Province> list=new ArrayList<Province>();
  list.add(p1);list.add(p2);list.add(p3);
   response.setHeader("content-type", "text/html;charset=utf-8");
  PrintWriter pw=response.getWriter();
  JsonConfig config=new JsonConfig();
  //使用这个方法可以将不需要转成json格式的字段 屏蔽掉
  config.setExcludes(new String[]{"id"});
  //将一个集合转换成json格式
  String data=JSONArray.fromObject(list,config).toString();
  //讲一个对象转换成Json格式,同样可以使用JsonConfig屏蔽不想要转换的字段
  String data2=JSONObject.fromObject(p1).toString();
  System.out.println(data);
  pw.write(data);
我用的是Json-lib
luoyefeiwu1 2014-07-09
  • 打赏
  • 举报
回复
private static void test() { // TblAreaCodeDTO dto1 =new TblAreaCodeDTO(); // dto1.setId("1a"); // dto1.setAreaName("haha"); // TblAreaCodeDTO dto2 =new TblAreaCodeDTO(); // dto2.setId("1b"); // dto2.setAreaName("baba"); // TblAreaCodeDTO dto3 =new TblAreaCodeDTO(); // dto3.setId("1c"); // dto3.setAreaName("dada"); // List<TblAreaCodeDTO> list=new ArrayList<TblAreaCodeDTO>(); // list.add(dto1); // list.add(dto2); // list.add(dto3); // JsonConfig j=new JsonConfig(); // //过滤的属性 // j.setExcludes(new String[]{"pageNo","pageSize","parentId","multipartRequestHandler","servletWrapper","sortIndex"}); // net.sf.json.JSONArray jj=net.sf.json.JSONArray.fromObject(list, j);//对象过滤属性后转json // System.out.println(jj); // TblAreaCodeDTO td=new TblAreaCodeDTO(); // Object[] ob=new Object[jj.size()]; // for (int i = 0; i < jj.size(); i++) { // JSONObject jsj=jj.getJSONObject(i); // ob[i]=jsj.toBean(jsj, TblAreaCodeDTO.class); // // } // //json转对象 // for (int i = 0; i < ob.length; i++) { // td=(TblAreaCodeDTO)ob[i]; // } // System.out.println("-ID=:"+td.getId()+"----name=:"+td.getAreaName()); // // }
Joyce-Luo 2014-07-08
  • 打赏
  • 举报
回复
亲,你想多了,现在json哪还有处理不过来的,多复杂的对象和数据相互转换都是没有问题的!参考一下这篇文章http://blog.csdn.net/luo201227/article/details/23436951
wula0010 2014-07-07
  • 打赏
  • 举报
回复
解析json对象,重新构造成你需要的就可以了,没有其他办法...............
Intboy 2014-07-07
  • 打赏
  • 举报
回复
用fastjson,对象跟json之间互相转换,不需要的属性可以直接用注解配置不要序列化,然后你得到的对象就只是你想要的。
业余草 2014-07-07
  • 打赏
  • 举报
回复
可以的,完全可以的
酱油一哥 2014-07-07
  • 打赏
  • 举报
回复
tony4geek 2014-07-07
  • 打赏
  • 举报
回复
你重新订一个model 然后去掉你不需要的json 字段,然后用 第3方工具转化。
sunbo624 2014-07-07
  • 打赏
  • 举报
回复
借助第三方类库很容易 否则就要自己把字符串变成树结构 然后也很容易
「已注销」 2014-07-06
  • 打赏
  • 举报
回复
1. Java代码中利用map及list构造json对象 Map构造json: Map map = new HashMap(); map.put("test1","10001"); map.put("test2","10002"); map.put("test3","10003"); JSON json = JSONObject.fromObject(map); json解析成Java对象: MorphDynaBean m = (MorphDynaBean) JSONSerializer.toJava(json); /*构造MorphDynaBean对象*/ m.get("test1"); m.get("test2"); m.get("test3"); List构造json: List list = new ArrayList(); list.add("10001"); list.add("10002"); list.add("10003"); JSON json = JSONArray.fromObject(list); ArrayList ls = (ArrayList) JSONSerializer.toJava(json); json解析成Java对象 ArrayList arrayList = (ArrayList) JSONSerializer.toJava(ls); /*解析成arraylist*/ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 2. JQuery中使用json对象: ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ <script type="text/javascript" src="/JqueryWeb/jquery/jquery-1.5.2.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#test1").click(function(){ $.getJSON("register.action",{data:"123456"}, function(data){ alert(data.a+":"+data.b+":"+data.c); }); }); }); </script>

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧