gpt4 book ai didi

java - 如何将 json 反序列化为字典或键值对?

转载 作者:行者123 更新时间:2023-11-30 06:36:41 26 4
gpt4 key购买 nike

我必须像这样反序列化一个 JSON 对象

[{"Key":{"id":0, "Name":"an Object"}, "Value":true},
{"Key":{"id":0, "Name":"an Object"}, "Value":true}]

我知道如何反序列化数组和单个对象或变量。但我对字典很担心。

我正在使用以下内容读取数组

NetworkEvent n = (NetworkEvent) evt;
byte[] data = (byte[]) n.getMetaData();

AnObject[] anObject= null;
try {
JSONArray json = new JSONArray(new String(data, "UTF-8"));
anObject= AnObject.getAnObjects(json);
} catch (Exception ex) {
ex.printStackTrace();
}

最终代码解决方案:

        Object[] objects= new Object[json.length()];
for (int i = 0; i < json.length(); ++i) {

Key key= null;
Value value = null;
try {
JSONObject keyValuePair = json.getJSONObject(i);
key= Key.getKey(keyValuePair.getJSONObject("Key"));
value= keyValuePair.getBoolean("Value");
} catch (JSONException ex) {
ex.printStackTrace();
}

Object object= new object();
object.setKey(key);
object.setValue(value);

Objects[i] = object;
}
return objects;

最佳答案

您所拥有的不是 JSON 对象。它是一个 JSON 对象数组,因此您当前的代码应该可以工作。

我认为您的“问题”在于您使用了错误的术语。

这是一个属性或名称/值对:

"id":0

这是一个对象:

{"id":0, "Name":"an Object"}

这也是一个对象:

{"Key":{"id":0, "Name":"an Object"}, "Value":true}

这是一个(对象的)数组

[{"Key":{"id":0, "Name":"an Object"}, "Value":true},
{"Key":{"id":0, "Name":"an Object"}, "Value":true}]

有关详细信息,请参阅 json.org site .

关于java - 如何将 json 反序列化为字典或键值对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4539233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com