gpt4 book ai didi

android - 为 Android 应用程序创建一个可解析的 JSON 文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:52:42 24 4
gpt4 key购买 nike

我正在尝试使用我的 Android 应用程序获取网络服务器上的 json 文件中的图像列表。但是它们没有被读取,我一定是犯了一些错误,可能是在我的 json 文件中。

我正在尝试创建一个我的应用程序可以读取的 .Json 文件,下面列出了我的一个实验性 JSON 文件,但它不起作用。

由于我对 Json 不是很有经验,所以我想知道是否有人知道如何创建我的应用程序可以解析的 JSON 文件。

我的实验 json 文件:

{
"Wallpaper": [
{
"id": "1",
"title": "Clouds",
"thumburl": "http://url.com/images/Pages/Apps/apps.png",
"previewurl": "http://url.com/images/Pages/Apps/apps.png",
"url": "http://url.com/images/Pages/Apps/apps.png",
"text": "Sky"
}
]
}

还有我的代码:

 import someimportsandotherstuff

import de.dan_nrw.android.scroid.Wallpaper;


public final class JsonWallpaperParser implements IWallpaperParser {

/**
* Creates a new instance of JsonWallpaperParser.
*/
JsonWallpaperParser() {
super();
}


/* (non-Javadoc)
* @see de.dan_nrw.boobleftboobright.IWallpaperParser#parse(java.lang.String)
*/
@Override
public List<Wallpaper> parse(String data) throws ParseException {
try {
JSONArray array = new JSONArray(data);
List<Wallpaper> wallpapers = new ArrayList<Wallpaper>();

for (int i = 0; i < array.length(); i++) {
JSONObject jsonWallpaper = array.getJSONObject(i);

wallpapers.add(new Wallpaper(jsonWallpaper.getString("id"),
jsonWallpaper.getString("title"),
URI.create(jsonWallpaper.getString("thumburl")),
URI.create(jsonWallpaper.getString("previewurl")),
URI.create(jsonWallpaper.getString("url")),
jsonWallpaper.getString("text")));
}

return wallpapers;
}
catch (JSONException ex) {
throw new ParseException(ex.getMessage(), 0);
}
}
}

感谢任何帮助!

最佳答案

那么你的json应该是这样的

[
{
"id": "1",
"title": "Clouds",
"thumburl": "http://sherdle.com/images/Pages/Apps/Sherdleapps.png",
"previewurl": "http://sherdle.com/images/Pages/Apps/Sherdleapps.png",
"url": "http://sherdle.com/images/Pages/Apps/Sherdleapps.png",
"text": "Sky"
}
]

您的 JSONString 返回 JSONObject 而不是 JSONArray你应该像这样解析你的 json 字符串

JSONObject object=new JSONObject(data);
JSONArray array=object.getJSONArray("wallpaper");
List<Wallpaper> wallpapers = new ArrayList<Wallpaper>();
for (int i = 0; i < array.length(); i++) {
JSONObject jsonWallpaper = array.getJSONObject(i);

wallpapers.add(new Wallpaper(jsonWallpaper.getString("id"),
jsonWallpaper.getString("title"),
URI.create(jsonWallpaper.getString("thumburl")),
URI.create(jsonWallpaper.getString("previewurl")),
URI.create(jsonWallpaper.getString("url")),
jsonWallpaper.getString("text")));
}

关于android - 为 Android 应用程序创建一个可解析的 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16239272/

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