我坚持使用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));
}
答案 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());