使用java中的json简单库解码jsonobject

时间:2015-07-07 08:03:47

标签: java json json-simple

{
"module": "abc",
"chapter": "1",
"source": "Google",
"error": {
    "1": {
        "sourceLanguage": "English",
        "message": "not found",
        "array": "[a, b, c]"
    },
    "2": {
        "sourceLanguage": "English",
        "message": "not found",
        "array": "[a, b, c]"
    },
    "3": {
        "sourceLanguage": "English",
        "message": "not found",
        "array": "[l, m, n]"
    }    
 }
}    

如何解码jsonobject以获取每个键的错误&每个键分别访问每个值。 试过这个,但不能分割每个键的值。

Map mapobj=(JSONObject) jsonObj.get("error");
            Iterator iterator=mapobj.entrySet().iterator();
            while(iterator.hasNext()){
                Map.Entry pair=(Entry) iterator.next();
                System.out.println(pair.getKey()+""+pair.getValue());
            }

1 个答案:

答案 0 :(得分:0)

目前尚不清楚您的问题究竟是什么,但如果您打算一次迭代sourceLanguagemessagearray,请重复Iterator逻辑再一次。

Map mapobj = (JSONObject) jsonObj.get("error");
Iterator iterator = mapobj.entrySet().iterator();

while(iterator.hasNext()){
    Map.Entry pair = (Entry) iterator.next();
    System.out.println(pair.getKey() + "" + pair.getValue());

    Map errorObj = new JSONObject(pair.getValue());
    Iterator errorIterator = errorObj.entrySet().iterator();

    while(errorIterator.hasNext()) {
        Map.Entry errPair = (Entry) errorIterator.next();
        System.out.println(errPair.getKey() + "" + errPair.getValue());
    }
}

我不确定您正在使用哪个库,我认为JSONObject 是-a Map适用于此,因为您可以使用您共享的代码打印error json。