我正在尝试解析我的JSONObject以获取我的JSON数据的数据。
但问题是JSONParser是org.json.simple.JSONParser中的一个类,而JSONObject是org.json.JSONObject。
我在org.json中找不到任何解析器来避免类强制转换异常!
我们还有其他办法让这些东西排序......?
或者我是否朝着完全错误的方向前进? 请建议
我的JSON看起来像:
{
"dataIntents": [
{
"intent": "muster.policy.daily",
"expr": "Am I supposed to register my attendance daily?"
},
{
"intent": "leave.probation",
"expr": "An employee is eligible for how many leaves in 1st year ??"
},
{
"intent": " leave.resigned ",
"expr": "Are resigned employees eligible for pro rata leave credit"
},
{
"intent": " muster.deadline.submission ",
"expr": "By when should I get my pending leave/Emuster applications
approved?"
}
]
}
我的主要课程:
public class DLMain {
public static void main(String[] args) {
try {
JSONParser parser = new JSONParser();
Object obj =
parser.parse(newFileReader("/home/cmss/Downloads/data.json"));
org.json.JSONObject dataObject = (org.json.JSONObject)obj;
System.out.println(dataObject);
org.json.JSONArray getArray =
dataObject.getJSONArray("dataIntents");
for (int i = 0; i < getArray.length(); i++) {
org.json.JSONObject objects = getArray.getJSONObject(i);
String a = objects.getString("expr");
}
System.out.println();
} catch (Exception e) {
System.out.println(e);
}
}
}
我希望我的“expr”键的所有值都放在JSONObject或String中。
提前帮助表示赞赏:)
答案 0 :(得分:1)
为什么不为此使用POJO?
到目前为止,你的Json是一个意图列表,你可以有类似的东西:
public class Intents {
private List<Intent> dataIntents;
}
和另一个
public class Intent {
private String intent;
private String expr;
}
(请生成构造函数和getter setter)
然后你可以直接使用ObjectMapper并避免所有丑陋的JSON解析。
希望它有所帮助!