我正在将我的网站转换为Android应用程序和其中一个页面'数据目前通过我的网站中的JSON填充。它的工作方式是URL根据传递的ID生成具有相同结构的不同JSON数据。我已经有了将ID传递给URL的逻辑。现在我想通过Java代码读取数据并解析JSON子项及其值。
我有一个以文本形式导致JSON文件的URL,但我不确定如何从中读取数据并根据JSON密钥访问子节点。
所以我猜我要问的是这个程序的常用方法是什么?我看到很多不同的例子,但没有一个适用于我的问题。
任何人都有任何建议我应该如何解决这个问题?
答案 0 :(得分:0)
JSONObject = new JSONObject(yourjsonstring);
现在你有了Json对象......
如果你的Json从数组开始使用:
JSONArray = new JSONArray(yourjsonarray);
答案 1 :(得分:0)
您可以使用现有的库来解析JSON,gson或Moshi是两种解决方案。
解析JSON的方法如下
首先,您需要使用与JSON文件相同的结构制作pojo。
然后你可以通过fromJSON()方法将它解析为java代码,这将创建新对象并用JSON中的数据填充它。
gson示例澄清:
Gson gson = new Gson();
Response response = gson.fromJson(jsonLine, Response.class);
其中jsonLine =您的json文件,而Response.Class是您要在其中加载json的pojo。
现在您将JSON值作为Java类作为响应。
如果您正在使用Retrofit和OkHTTP来执行网络通话,我建议您使用Moshi,因为它也来自Square并声称比gson更快更好地工作。 (如果你想知道为什么你可以发表评论)。
答案 2 :(得分:0)
我认为你要做的就是这个
on post execute方法执行以下操作
@Override
protected void onPostExecute(String result) {
String status = "";
String message = "";
String tag = "";
String mail = "";
try {
JSONObject jsonResult = new JSONObject(result);
status = jsonResult.optString("status");
message = jsonResult.optString("message");
tag = jsonResult.optString("tag");
mail = jsonResult.optString("mail");
} catch (JSONException e) {
e.printStackTrace();
}
当然你的json数组包含不同的键 只需和你一起重新点击它们