我正在尝试将以下JSON字符串解析为java。
{"Stdout":"Hello World\nThis is Sara","Stderr":"exit status 124"}
此字符串是动态的,内容可以不同,如
{"Stdout":"Hello World\nThis is Sara","Stderr":""}
或
{"Stdout":"","Stderr":"exit status 124"}
我正在使用following tutorial而不是我正在其中添加字符串的文件。
因此,我创建此代码只是打印"Stdout"
和"Stderr"
必须说的内容:
public void parsed(String str) {
JSONParser parser=new JSONParser();
try {
Object obj = parser.parse(str);
JSONObject jsonObject = (JSONObject) obj;
JSONArray out = (JSONArray) jsonObject.get("Stdout");
Iterator<String> iterator = out.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
// loop array
JSONArray err = (JSONArray) jsonObject.get("Stderr");
Iterator<String> iterator2 = err.iterator();
while (iterator2.hasNext()) {
System.out.println(iterator2.next());
}
} catch (ParseException e) {
e.printStackTrace();
}
}
我得到以下结果。我已经尝试了在Stack Overflow和其他网站上找到的每一个可能的解决方案。
java.lang.String cannot be cast to org.json.simple.JSONArray
答案 0 :(得分:1)
stdout
和stderr
的转换是错误的。它们都是String
而不是JSONArray
。试试这个:
更改:JSONArray out = (JSONArray) jsonObject.get("Stdout");
收件人:String stdout= (String) jsonObject.get("Stdout");
打印String并查看会发生什么。