将json字符串转换为列表或映射 [英] Convert json string to list or map

查看:196
本文介绍了将json字符串转换为列表或映射的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  [{projectFileId:8547,
projectId:8235,
fileName:1,
application:Excel,
复杂度:NORMAL,
pageCount:2,
targetLanguages:ar-SA,
Id:8547
},
{projectFileId:8450 ,
projectId:8235,
fileName:Capacity Calculator.pptx,
application:Powerpoint,
complexity:NORMAL ,
pageCount:100,
targetLanguages:ar-LB,ar-SA,
Id:8450
}




$ b

我想将此字符串转换为数组列表或映射,以便可以迭代通过它并获取字段值。 您可以使用 rel =nofollow> GSON 。只需使用 Gson#fromJson() 方法将JSON字符串转换为Java对象。



示例代码:

  BufferedReader reader = new BufferedReader(new FileReader(new File( json.txt))); 
Gson gson = new Gson();
Type type = new TypeToken< ArrayList< Map< String,String>>>(){} .getType();
ArrayList< Map< String,String>> data = gson.fromJson(reader,type);

//从对象转换回JSON字符串
System.out.println(new GsonBuilder()。setPrettyPrinting()。create()。toJson(data));






你可以创建一个POJO类来直接转换它到POJO类对象的列表,以便于访问它。



示例代码:

  class PojectDetail {
private String projectFileId;
private String projectId;
私人字符串文件名;
私有字符串应用程序;
私有字符串复杂度;
私人字符串pageCount;
private String targetLanguages;
私人字符串ID;
// getter& setter
}

Gson gson = new Gson();
Type type = new TypeToken< ArrayList< PojectDetail>>(){} .getType();
ArrayList< PojectDetail> data = gson.fromJson(reader,type);


I get a json string in server side as follow

[     {"projectFileId":"8547",
       "projectId":"8235",
       "fileName":"1",
       "application":"Excel",
       "complexity":"NORMAL",
       "pageCount":"2",
       "targetLanguages":" ar-SA",
       "Id":"8547"
      },
      {"projectFileId":"8450",
       "projectId":"8235",
       "fileName":"Capacity Calculator.pptx",
       "application":"Powerpoint",
       "complexity":"NORMAL",
       "pageCount":"100",
       "targetLanguages":" ar-LB, ar-SA",
       "Id":"8450"
      }
]

I want to convert this string into an arraylist or map whichever possible so that I can iterate over it and get the field values.

解决方案

You can use GSON library. Simply use Gson#fromJson() method to convert JSON string into Java Object.

sample code:

BufferedReader reader = new BufferedReader(new FileReader(new File("json.txt")));
Gson gson = new Gson();
Type type = new TypeToken<ArrayList<Map<String, String>>>() {}.getType();
ArrayList<Map<String, String>> data = gson.fromJson(reader, type);

// convert back to JSON string from object
System.out.println(new GsonBuilder().setPrettyPrinting().create().toJson(data));


You can create a POJO class to convert it directly into List of POJO clas object to access it easily.

sample code:

class PojectDetail{
    private String projectFileId;
    private String projectId;
    private String fileName;
    private String application;
    private String complexity;
    private String pageCount;
    private String targetLanguages;
    private String Id;
    // getter & setter
}

Gson gson = new Gson();
Type type = new TypeToken<ArrayList<PojectDetail>>() {}.getType();
ArrayList<PojectDetail> data = gson.fromJson(reader, type);

这篇关于将json字符串转换为列表或映射的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆