我有一个包含多个json元素的字符串,而该json元素又包含多个元素,如何将其转换为json对象

时间:2018-09-12 20:11:47

标签: java json

所以我有一个看起来像

的字符串
 [  
   {  
      "status":"Pending",
      "name":"test",
      "fileHash":"test",
      "createdOn":"tset",
      "bytesCompleted":0,
      "size":40,
      "fileId":"test"
   },
   {  
      "status":"Pending",
      "name":"test",
      "fileHash":"test",
      "createdOn":"test",
      "bytesCompleted":0,
      "size":40,
      "fileId":"tset"
   }
]

我尝试了很多选项,例如gson和org.json库,但是我无法将该字符串转换为JSON对象。 我该怎么办?

更新: 我正在使用Java 我正在尝试类似的东西

JSONObject jsonRes = new JSONObject(res.toString());
 JSONObject jsnobject = new JSONObject(res);

 JSONArray jsonArr = new JSONArray(res);
 JSONParser parser = new JSONParser();

 JSONObject json = (JSONObject) parser.parse(res);

通常我会收到

之类的错误
[ERROR]   org.json.simple.JSONArray cannot be cast to org.json.JSONObject

另外,如果我这样做

 JSONObject jsnobject = new JSONObject(res);
 return jsnobject;

res就像我在开始时输入的字符串一样,却出现类似错误

A JSONObject text must begin with '{' at 1 [character 2 line 1]

2 个答案:

答案 0 :(得分:1)

while(amount <= 2000)
{
    year++;
    amount = (int) (amount + (amount*(interest/100)));
}

答案 1 :(得分:1)

您可以为此使用Jackson。

创建一个示例Bean:

public class Example {

    @JsonProperty("status")
    private String status;
    @JsonProperty("name")
    private String name;
    @JsonProperty("fileHash")
    private String fileHash;
    @JsonProperty("createdOn")
    private String createdOn;
    @JsonProperty("bytesCompleted")
    private Integer bytesCompleted;
    @JsonProperty("size")
    private Integer size;
    @JsonProperty("fileId")
    private String fileId;

    // getters and setters
}

解析到示例列表:

public List<Example> parse(String str) throws JsonParseException, JsonMappingException, IOException {
        ObjectMapper mapper = new ObjectMapper();
        return mapper.readValue(str, new TypeReference<List<Example>>() {});
}