Java 如何在android中展开json
我有jsonJava 如何在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
{
"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);
}