Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android中展开json_Java_Android_Json - Fatal编程技术网

Java 如何在android中展开json

Java 如何在android中展开json,java,android,json,Java,Android,Json,我有json { "a": 11, "b": 22, "object": { "c": 33, "d": 44, "e": 55 } } 我想制作一个只有一个级别的json,它包含如下所有键: { "a": 11, "b": 22, "c": 33, "d": 44, "e": 55 } 可以假设这些键在我的json中没有重复 在安卓系统中,最快的方法是什么 String json = "{ "a": 11, "b": 22

我有json

{
  "a": 11,
  "b": 22,
  "object": {
    "c": 33,
    "d": 44,
    "e": 55
  }
}
我想制作一个只有一个级别的json,它包含如下所有键:

{
  "a": 11,
  "b": 22,
  "c": 33,
  "d": 44,
  "e": 55
}
可以假设这些键在我的json中没有重复

在安卓系统中,最快的方法是什么

String json = "{
  "a": 11,
  "b": 22,
  "object": {
    "c": 33,
    "d": 44,
    "e": 55
  }
}";


JSONObject jObj = new JSONObject(json);
JSONObject jObjNew = new JSONObject();
multiToLinearJson(jObj);


public void multiToLinearJson(JSONObject jObj) {
    Iterator<String> iter = jObj.keys();
    while (iter.hasNext()) {
        String key = iter.next();
        try {
            Object value = jObj.get(key);
            if (value instanceof JSONObject) {
                multiToLinearJson(value);
            }
            jObjNew.put(key, value);
        } catch (JSONException e) {
            // Something went wrong!
        }
    }
}
没有测试

谢谢你的回答, 事实上,我是按代码做的

// Iterate inner-json and add to the outer json
JSONObject innerJson = outerJson.getJSONObject("Object");
Iterator<?> keys = innerJson .keys();
while( keys.hasNext() ){
    String key = (String)keys.next();
    Object ob = innerJson .get(key);
    outerJson.put(key, ob);
}
//迭代内部json并添加到外部json
JSONObject innerJson=outerJson.getJSONObject(“对象”);
迭代器keys=innerJson.keys();
while(keys.hasNext()){
字符串键=(字符串)键。下一步();
Object ob=innerJson.get(key);
输出(键,ob);
}

内部对象能否与外部对象具有相同的键?像
{a:{x:y},b:{x:z}
(如果是,那么您希望如何转换它)这样的相同类型的对象是否可以有多个?您是对的,我忘了写这个。重复的钥匙是不可能的我想你需要代码,但没有一行…你的答案是正确的,而且很快,但我倾向于代码有点不同,因为我的代码环境。谢谢你的回答!
// Iterate inner-json and add to the outer json
JSONObject innerJson = outerJson.getJSONObject("Object");
Iterator<?> keys = innerJson .keys();
while( keys.hasNext() ){
    String key = (String)keys.next();
    Object ob = innerJson .get(key);
    outerJson.put(key, ob);
}