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