在Java中将字符串转换为Json数组时获得空Json数组

在Java中将字符串转换为Json数组时获得空Json数组,java,arrays,json,Java,Arrays,Json,我正在尝试将字符串转换为Json数组(不带名称/标记),并遍历结果数组。。但在调试代码时,生成的json数组显示为null。我找不到这个问题的原因 下面是我试图解析为Json数组的给定字符串 String jsonString="[ {" + "\"TimeStamp\": \"20:10\"," + "\"PipeTemp\": \"31.5\"," + "\"ChocolateMixingTemp\": \"25\","

我正在尝试将字符串转换为Json数组(不带名称/标记),并遍历结果数组。。但在调试代码时,生成的json数组显示为null。我找不到这个问题的原因

下面是我试图解析为Json数组的给定字符串

String jsonString="[ {"
            + "\"TimeStamp\": \"20:10\","
            + "\"PipeTemp\": \"31.5\","
            + "\"ChocolateMixingTemp\": \"25\","
            + "\"WaterCoolingTemp\": \"5\","
            + "\"WaterMixingTemp\": \"0\","
            + "\"WaterHeatingTemp\": \"0\",},
            +{"
            + "\"TimeStamp\": \"20:00\","
            + "\"PipeTemp\": \"35.5\","
            + "\"ChocolateMixingTemp\": \"28\","
            + "\"WaterCoolingTemp\": \"3\","
            + "\"WaterMixingTemp\": \"15\","
            + "\"WaterHeatingTemp\": \"0\","
            +}]";
我将上述字符串传递给Java数组实例,然后使用for循环对其进行迭代以生成PDF表。但当我尝试检查Json数组的大小时,它显示为null

JSONArray jsonArray = new JSONArray(jsonString);

 JSONObject jsonObject;
 for(int n = 0; n < jsonArray.length(); n++)
{
 table.addCell(createCell( (String) jsonObject.get("TimeStamp"),Element.ALIGN_CENTER)); 
             table.addCell(createCell( (String) jsonObject.get("PipeTemp"),Element.ALIGN_CENTER)); 
             table.addCell(createCell( (String) jsonObject.get("ChocolateMixingTemp"), Element.ALIGN_CENTER)); 
             table.addCell(createCell( (String) jsonObject.get("WaterCoolingTemp"),Element.ALIGN_CENTER)); 
             table.addCell(createCell( (String) jsonObject.get("WaterMixingTemp"),Element.ALIGN_CENTER)); 
jsonObject.get("WaterHeatingTemp"),Element.ALIGN_CENTER)); 

}
JSONArray-JSONArray=新的JSONArray(jsonString);
JSONObject JSONObject;
for(int n=0;n
有人能帮我确定为什么数组显示为空吗?
我还尝试使用一个只包含两个键值对的简单字符串进行测试。但是得到了同样的结果。

您的代码是错误的。请尝试以下代码来测试JSON数组:

String jsonString = "[ {"
            + "\"TimeStamp\": \"20:10\","
            + "\"PipeTemp\": \"31.5\","
            + "\"ChocolateMixingTemp\": \"25\","
            + "\"WaterCoolingTemp\": \"5\","
            + "\"WaterMixingTemp\": \"0\","
            + "\"WaterHeatingTemp\": \"0\",},"
            + "{"
            + "\"TimeStamp\": \"20:00\","
            + "\"PipeTemp\": \"35.5\","
            + "\"ChocolateMixingTemp\": \"28\","
            + "\"WaterCoolingTemp\": \"3\","
            + "\"WaterMixingTemp\": \"15\","
            + "\"WaterHeatingTemp\": \"0\","
            + "}]";

JSONArray jsonArray = new JSONArray(jsonString);

System.out.println(jsonArray);

for (int n = 0; n < jsonArray.length(); n++) {
    JSONObject jsonObject = jsonArray.getJSONObject(n);
    System.out.println((String) jsonObject.get("TimeStamp"));
}
String jsonString=“[{”
+“\“时间戳\:\“20:10\”,”
+“\“PipeTemp\”:\“31.5\”,”
+“巧克力混合汤”:“25”
+“\'WaterCoolingTemp\”:\'5\”
+“\'WaterMixingTemp\”:\'0\,”
+“WaterHeatingTemp\:\“0\,}”
+ "{"
+“\“时间戳\:\“20:00\”,”
+“\“PipeTemp\”:\“35.5\”,”
+“巧克力混合汤”:“28”
+“\'WaterCoolingTemp\”:\'3\,”
+“\'WaterMixingTemp\”:\'15\,”
+“\“WaterHeatingTemp\”:\“0\”
+ "}]";
JSONArray JSONArray=新的JSONArray(jsonString);
System.out.println(jsonArray);
for(int n=0;n
首先,您的json字符串格式不正确,请参见下面的格式:

String s="[ {"
                + "\"TimeStamp\": \"20:10\","
                + "\"PipeTemp\": \"31.5\","
                + "\"ChocolateMixingTemp\": \"25\","
                + "\"WaterCoolingTemp\": \"5\","
                + "\"WaterMixingTemp\": \"0\","
                + "\"WaterHeatingTemp\": \"0\",},"
                + "{"
                + "\"TimeStamp\": \"20:00\","
                + "\"PipeTemp\": \"35.5\","
                + "\"ChocolateMixingTemp\": \"28\","
                + "\"WaterCoolingTemp\": \"3\","
                + "\"WaterMixingTemp\": \"15\","
                + "\"WaterHeatingTemp\": \"0\","
                + "}]";
第二,我没有看到您的jsonObject被任何东西初始化。
如果您想使用json中的值,请使用jsonArray.get(index)方法。

您的json可能会有问题,另外还有一个逗号(,)+“\”WaterHeatingTemp\”:\“0\”,>>应该没有逗号(,)“\”WaterHeatingTemp\“:\”0\”json中肯定有一些输入错误,它不会为我编译。它很容易通过Stackoverflow的语法突出显示看到。您会立即看到
WaterHeatingTemp
附近有一个问题。