我试过使用gson和Jackson解析器,但是很遗憾我没有达到我想要的效果。
{
"rateName": "My Special Rate",
"adjustments": [
{
"adjustmentType": "LOAN_AMOUNT_GREATER_THAN_550K",
"rate": 0.75
},
{
"adjustmentType": "AMORTIZATION_TERM_LESS_THAN_30_YEARS",
"rate": -0.2
}
],
"errorTypes": [],
"premiumTaxs": [],
"renewalPremiums": [],
"totalInitialRate": 1.95,
"optimumPricing": false,
"miPricingVO": null,
"rateCardId": "BALS_NR",
"ratingInfoBaseRate": 1.4
}
以下是我想解析的Json。 我希望创建通用方法,以便可以轻松按名称访问值。 例如:
- getName(rateName) - 应返回'My Special Rate'
- getNameFromArray(adjustmentType, adjustments) - 应返回'LOAN_AMOUNT_GREATER_THAN_550K'
附加信息:我尝试使用Gson,但它会解析整个文件,并在找到数组时引发错误。
JsonReader j = new JsonReader(new FileReader("Path of Json"));
j.beginObject();
while (j.hasNext()) {
String name = j.nextName();
if (name.equals("rateName")) {
System.out.println(j.nextString());
}
System.out.println(name);
}
我尝试使用Jackson,结果遇到了与Gson相同的问题。
JsonFactory jfactory = new JsonFactory();
JsonParser jParser = jfactory.createJsonParser("Path of Json");
while (jParser.nextToken() != JsonToken.END_OBJECT) {
System.out.println(jParser.getCurrentName());;
}