无法将字符串转换为json数组并解析

时间:2020-04-07 12:38:28

标签: java json parsing

我坚持使用String,json转换和解析。它可能看起来很傻,但我的帮助却更少。

这是我从服务器返回的字符串

[{
  "ClientName":"SELVI",
  "AccountID":"2040IG20000185",
  "ToatalLonaAmount":"35000.0000",
  "RepaymentFequencyID":"M",
  "RepaymentFequency":"Monthly",
  "InterestRate":"25.88",
  "EMIAmount":"1883.0000",
  "PrincipleOutstanding":"3626.0000",
  "InterestOutstanding":"108.0000",
  "TotalTerm":"24",
  "RemainingTerm":"2",
  "ErrorCode":"",
  "Response":true,
  "ResponseMsg":"",
  "Status":"1",
  "LoanStatusID":"A",
  "LoanStatus":"Active Loan"
}]

我如何解析它并读取值?

请帮助我。看起来像json数组,我对此很陌生。

我已经尝试过了,但是无法读取值

JSONParser parser = new JSONParser();
Object obj1  = parser.parse(response.toString());
JSONArray array = new JSONArray();
array.add(obj1);

//JSONArray jsonarray = new JSONArray();
for (int i = 0; i < array.size(); i++) {
    System.out.println("data :"+array.get(i));          
}

3 个答案:

答案 0 :(得分:0)

您只需使用JSON.parse(jsonValue);

这里是示例:

var json = '[{"ClientName":"SELVI","AccountID":"2040IG20000185","ToatalLonaAmount":"35000.0000","RepaymentFequencyID":"M","RepaymentFequency":"Monthly","InterestRate":"25.88","EMIAmount":"1883.0000","PrincipleOutstanding":"3626.0000","InterestOutstanding":"108.0000","TotalTerm":"24","RemainingTerm":"2","ErrorCode":"","Response":true,"ResponseMsg":"","Status":"1","LoanStatusID":"A","LoanStatus":"Active Loan"}]'

var objArr = JSON.parse(json);

for(var i=0; i < objArr.length; i++) {
  console.log("Object from array: ", objArr[i])
}

答案 1 :(得分:0)

您只需使用fasterxml.jackson库将其绑定到POJO中即可。只需使用可对json中的属性进行设置的字段创建类,例如

public class MyBindClass{
    @JsonProperty(value = "ClientName")
    private String clientName;
    @JsonProperty(value = "AccountID")
    private String accountId; 
    //etc
    //getters and setters here

}

然后可以将json字符串绑定到此类对象的列表中(因为json包含列表):

List<MyBindClass> myBindClassList = new ObjectMapper().readValue(jsonString, new TypeReference<List<MyBindClass>>(){});

答案 2 :(得分:0)

获得如下解决方案

JSONParser parser = new JSONParser();  
                Object obj1  = parser.parse(response.toString());
                JSONArray array = new JSONArray();
                array=(JSONArray) obj1;
                ResponseModel r= new Gson().fromJson(array.get(0).toString(), ResponseModel.class);
                System.out.println(r.getClientName());