我得到下面的JSON从网址:读取多个JSON行
{"bytes": 5043, "name": "a", "timestamp": "11-Apr-2017 12:11:51", "ds": "Lab1"}
{"bytes": 0, "name": "b", "timestamp": "11-Apr-2017 12:11:51", "ds": "Lab1"}
{"bytes": 11590, "name": "c", "timestamp": "11-Apr-2017 12:11:51", "ds": "Lab1"}
我要回字节的每一行。使用杰克逊我试图解析它如下(注:JSON是保存到文件用于测试):
package JsonRead;
import java.io.File;
import java.io.IOException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JacksonTreeModelLogStorage {
public static void main(String[] args) {
try{
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(new File("JsonRead/json2.json"));
JsonNode logStorageNode = root;
for(JsonNode node : logStorageNode){
String bytesUsed = node.path("bytes").asText();
System.out.println("Bytes Used: " + bytesUsed);
}
} catch(IOException e){
System.out.println("IO Exception " + e);
}
}
}
这将返回以下:
Bytes Used:
Bytes Used:
Bytes Used:
Bytes Used:
如果我再改我的for循环的以下我可以看到我正在返回json的第一行:
for(JsonNode node : logStorageNode){
String json = node.asText();
System.out.println("json: " + a);
}
如何实现json所有行的字节?
您发布的JSON无效:JSON规范不允许像这样并排多个对象。我想你正在接收一个数组?如果是这样,那肯定是你的问题:你应该将'root'作为'JsonArray'而不是'JsonNode'处理并且对其内容进行循环 – Aaron