我试图打印出下面 JSON 中的所有键值,但无论出于何种原因,它只为我打印第一组值数组。
我怎样才能打印出 idValue 字符串中的所有键值?
编辑:我现在收到错误:
意外错误:JSONObject["submenu"] 不是字符串。
代码
import com.google.common.collect.LinkedListMultimap;
import com.google.common.collect.Multimap;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.Map;
public class testing {
static Multimap<String, String> allMappedKeyValues = LinkedListMultimap.create();
public static void main(String[] args) {
String idValue = "[{\"link\": \"/us_new/en/home\",\"amid\": \"1__home\",\"title\": \"Home\"}, {\"link\": \"/us_new/en/home/diagnosis\",\"amid\": \"2__diagnosis\",\"title\": \"Diagnosis\"}, {\"link\": \"/us_new/en/home/loss\",\"amid\": \"3__loss\",\"title\": \"loss\",\"submenu\": [{\"amid\": \"4__quiz\",\"name\": \"quiz\",\"title\": \"quiz\"},{\"amid\": \"5__questions\",\"name\": \"questions\",\"title\": \"Questions\"}]}]";
JSONArray array = new JSONArray(idValue);
for (int i = 0; i < array.length(); i++)
{
JSONObject object = array.getJSONObject(i);
JSONArray keys = object.names();
for (int j = 0; j < keys.length(); ++j)
{
String key = keys.getString(j);
Object value = object.get(key);
if (value instanceof JSONArray) {
JSONArray array1 = (JSONArray) value;
for (int k = 0; k < array1.length(); k++) {
JSONObject object1 = array1.getJSONObject(k);
JSONArray keys1 = object1.names();
慕标5832272
婷婷同学_
陪伴而非守候
相关分类