当前位置: 首页 > 面试题库 >

打印JSON值

田修为
2023-03-14
问题内容

这只是我需要访问的一小部分JSON代码…

"forecast":{
        "txt_forecast": {
        "date":"8:00 AM MST",
        "forecastday": [
        {
        "period":0,
        "icon":"partlycloudy",
        "icon_url":"http://icons-ak.wxug.com/i/c/k/partlycloudy.gif",
        "title":"Thursday",
        "fcttext":"Partly cloudy. High of 63F. Winds less than 5 mph.",
        "fcttext_metric":"Partly cloudy. High of 17C. Winds less than 5 km/h.",
        "pop":"0"
        }

我在打印嵌套JSON值时遇到问题。如果我想打印“ fcttext”,我该怎么做?我已经尝试过了…

public static void display() {
         JSONParser parser = new JSONParser();
         try {
             Object obj = parser.parse(new FileReader("C:\\ABC.json"));

         JSONObject jsonObject = (JSONObject) obj;
             String a = (String) jsonObject.get("forecast").toString();
             System.out.println(a);
     } 
         catch (FileNotFoundException e) {
         e.printStackTrace();
     } 
         catch (IOException e) {
         e.printStackTrace();
     } 
         catch (ParseException e) {
             e.printStackTrace();
     }
     }

我究竟做错了什么?完整的JSON代码。


问题答案:

首先,您的json不正确,请使用jsonlint [1]检查json的格式是否正确。

将JSON重新格式化为以下格式,

{
    "forecast": {
        "txt_forecast": {
            "date": "8: 00AMMST",
            "forecastday": [
                {
                    "period": 0,
                    "icon": "partlycloudy",
                    "icon_url": "http: //icons-ak.wxug.com/i/c/k/partlycloudy.gif",
                    "title": "Thursday",
                    "fcttext": "Partlycloudy.Highof63F.Windslessthan5mph.",
                    "fcttext_metric": "Partlycloudy.Highof17C.Windslessthan5km/h.",
                    "pop": "0"
                }
            ]
        }
    }
}

使用以下代码进行解析,

package com.aamir.stackoverflow;

import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class JSONParserStackOverflow {
    public static void main(String[] args) {

        String request = "{\n" +
                "    \"forecast\": {\n" +
                "        \"txt_forecast\": {\n" +
                "            \"date\": \"8: 00AMMST\",\n" +
                "            \"forecastday\": [\n" +
                "                {\n" +
                "                    \"period\": 0,\n" +
                "                    \"icon\": \"partlycloudy\",\n" +
                "                    \"icon_url\": \"http: //icons-ak.wxug.com/i/c/k/partlycloudy.gif\",\n" +
                "                    \"title\": \"Thursday\",\n" +
                "                    \"fcttext\": \"Partlycloudy.Highof63F.Windslessthan5mph.\",\n" +
                "                    \"fcttext_metric\": \"Partlycloudy.Highof17C.Windslessthan5km/h.\",\n" +
                "                    \"pop\": \"0\"\n" +
                "                }\n" +
                "            ]\n" +
                "        }\n" +
                "    }\n" +
                "}";

        JsonElement weatherJSON = new JsonParser().parse(request);
        JsonObject weatherObj = weatherJSON.getAsJsonObject();
        JsonObject forecastObj = weatherObj.get("forecast").getAsJsonObject();
        JsonObject txt_forecast = forecastObj.get("txt_forecast").getAsJsonObject();

        JsonArray forecastDays = txt_forecast.getAsJsonArray("forecastday");


        for(JsonElement forecastDay : forecastDays) {
            System.out.println(forecastDay.getAsJsonObject().get("fcttext").toString());
        }
    }
}

我已经使用Google的GSON [2]库来解析JSON。

[1] http://jsonlint.com/

[2] https://code.google.com/p/google-gson/



 类似资料:
  • 问题内容: 如何以易于阅读的格式(对人类读者而言)显示JSON?我主要是在寻找缩进和空格,甚至可能是颜色/字体样式/等等。 问题答案: 打印是在中本地实现的](https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) 。第三个参数启用漂亮的打印并设置要使用的间距

  • 问题内容: 我试图从我的postgres数据库中检索一些数据,并将它们打印为json。我成功地在没有json的情况下打印了它们,但我在json中需要它们。 main.go: 这是我访问localhost:1337 / db时得到的 这是终端上的输出: 有人知道是什么问题吗? 问题答案: 该包使用反射(结构的包),以存取字段。您需要导出结构的字段以使其起作用(以大写字母开头): 扫描时: 引用自:

  • 问题内容: 如果有人对JSON的打印非常了解,那么我将不胜感激! 我正在使用以下功能将JSON字符串移动到文件中,以将复杂的python字符串转换为JSON格式: 问题是我遇到了方括号的语法错误,因为这对我来说是个新话题,我不知道该如何解决。我需要的JSON格式如下: 我正在使用Google Visualization API,您可能对此比较熟悉,但是我需要动态图。上面的代码是API创建图形所需的

  • 问题内容: 我有一个使用JSON解析过的javascript对象,现在我想打印该对象,以便对其进行调试(该函数出了点问题)。当我执行以下操作时… 我列出了多个[object Object]。我想知道如何打印此内容以查看内容? 问题答案: 大多数调试器控制台都支持直接显示对象。只需使用 根据您的调试器,这很可能会将对象在控制台中显示为折叠的树。您可以打开树并检查对象。

  • 问题内容: 我正在构建一个PHP脚本,该脚本将JSON数据提供给另一个脚本。我的脚本将数据构建到一个大的关联数组中,然后使用来输出数据。这是一个示例脚本: 上面的代码产生以下输出: 如果您的数据量很少,那就太好了,但是我希望遵循以下几点: 有没有办法在PHP中做到这一点而又没有丑陋的破解?似乎有人在Facebook上找到了答案。 问题答案: PHP 5.4提供了用于调用的选项。 http://ph

  • 问题内容: 我有一个JSON文件,我想把它打印成一团糟。在Python中最简单的方法是什么? 我知道PrettyPrint带有一个“对象”,我认为它可以是一个文件,但是我不知道如何传递文件。仅使用文件名是行不通的。 问题答案: 该模块已经实现了一些基本的漂亮打印,其参数指定缩进多少空格: 要解析文件,请使用: