gpt4 book ai didi

java - Android:处理可以是字符串或数组的 json 对象

转载 作者:行者123 更新时间:2023-12-01 15:07:49 25 4
gpt4 key购买 nike

遇到了不知道如何处理的情况。

我有来自服务器的 json 数据;例如:(我只是发布了 json 的一部分,所以,是的,json 是有效的)

    "wall_id": 889149,
"poster_image_thumbnail": "http:\/\/www.mface.me\/images\/avatar\/thumb_62441559ddb1dda7513d0f94.jpg",
"post_type": "profile",
"post_content": [{
"text": "",
"images_count": 1,
"images": ["https:\/\/fbcdn-sphotos-a-a.akamaihd.net\/hphotos-ak-ash4\/227408_475848819113499_663318592_n.jpg"]
}]

创建一个类来存储此 json 数据

public class feedFormat{
Integer wall_id;
String poster_image_thumbnail;
String post_type;
String post_content;
}

有时post_content可以为空或数组,如上例所示。我已在 feedFormat 中将 post_content 声明为 String。这显然会引发强制转换异常(将数组转换为字符串?)。

我期望 JSONObject 将其作为字符串读取,然后将其转换为数组,但似乎并非如此。

如何动态处理字符串或数组?如果它是一个数组,我需要将其分解。

我正在将此应用程序从 IOS 移植到 Android,IOS 中有一个“id”对象,可以是任何类。我检查该类是否是 NSSTring 或 NSArray 并从那里获取它。在Java中,我不知道如何处理它。

非常感谢任何建议

最佳答案

如果你的 JSON 数组为空,它会像这样:

"post_content": []

它仍然是一个数组,其特殊性是大小为 0。

然后我建议您直接将 JSON 数组解析为适当的数据结构,无论大小如何,例如 ArrayList>。然后,您将能够浏览 JSON 数组的所有项目,并为每个项目在数组列表中添加一个新的 HashMap。每个 HashMap 都将包含键值对。

但是,如果我很好地理解你的 JSON,它似乎总是一个包含三个元素的数组,第三个元素本身就是一个数组,其大小由属性 images_count 给出。这不太好,你的 JSON 结构应该是:

"post_content": {
"text": "",
"images": [
"https://fbcdn-sphotos-a-a.akamaihd.net/hphotos-ak-ash4/227408_475848819113499_663318592_n.jpg"
]
}

由于 images 是一个数组,因此您可以轻松获取它的大小。

关于java - Android:处理可以是字符串或数组的 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12743568/

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