Android - 从网址

时间:2017-06-27 13:24:52

标签: java android json

我正在将我的网站转换为Android应用程序和其中一个页面'数据目前通过我的网站中的JSON填充。它的工作方式是URL根据传递的ID生成具有相同结构的不同JSON数据。我已经有了将ID传递给URL的逻辑。现在我想通过Java代码读取数据并解析JSON子项及其值。

我有一个以文本形式导致JSON文件的URL,但我不确定如何从中读取数据并根据JSON密钥访问子节点。

所以我猜我要问的是这个程序的常用方法是什么?我看到很多不同的例子,但没有一个适用于我的问题。

任何人都有任何建议我应该如何解决这个问题?

3 个答案:

答案 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数组包含不同的键 只需和你一起重新点击它们