Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串对象解析为JSONObject_Java_Json_Spring Boot - Fatal编程技术网

Java 将字符串对象解析为JSONObject

Java 将字符串对象解析为JSONObject,java,json,spring-boot,Java,Json,Spring Boot,我需要将包含JSON文件数据的字符串解析为JSONObject,并对其内容进行迭代,以获取其键和值,以便以后进一步处理。在将文件转换为字符串后,我一直在解析文件内容。我尝试使用user parse(),quote(),但似乎我“遗漏了一个细节,犯了一个重大错误” 这是我处理的json文件的一个片段: { { "id":0, "name": "project1", "couverage"

我需要将包含JSON文件数据的字符串解析为JSONObject,并对其内容进行迭代,以获取其键和值,以便以后进一步处理。在将文件转换为字符串后,我一直在解析文件内容。我尝试使用user parse(),quote(),但似乎我“遗漏了一个细节,犯了一个重大错误”

这是我处理的json文件的一个片段:

{
    {
    "id":0,
    "name": "project1",
    "couverage": "100",
    "completness": "44.8",
    "consistency": "46",
    }
    
    {
    "id":1,
    "name": "project2",
    "couverage": "100",
    "completness": "44.8",
    "consistency": "46",
    }
    
    {
    "id":2,
    "name": "project3",
    "couverage": "100",
    "completness": "44.8",
    "consistency": "46",
    }
}

这是我开发的代码

public void readfromJsonFile(File jsonFile, long readTimeStamp) {
    logger.info("Read from JSON file:  {}", jsonFile.getName());
    
    try{
            
        //Read File Content
        String content = new String(Files.readAllBytes(jsonFile.toPath()));
        
        JSONParser jsonParser = new JSONParser(content);
        JSONObject obj = (JSONObject) jsonParser.parse();
        JSONArray key = obj.names();
        
        for (int i = 0; i < key.length (); ++i) {
            String keys = key.getString(i);
            System.out.println(keys);
            String value = obj.getString (keys);
            System.out.println(value);
    }catch (Exception e) {
            logger.error("Failed to parse JSON File: {}", jsonFile.getName());
        }
}

public void readfromJsonFile(文件jsonFile,长readTimeStamp){
info(“读取JSON文件:{}”,jsonFile.getName());
试一试{
//读取文件内容
字符串内容=新字符串(Files.readAllBytes(jsonFile.toPath());
JSONParser JSONParser=新的JSONParser(内容);
JSONObject obj=(JSONObject)jsonParser.parse();
JSONArray key=obj.names();
对于(int i=0;i
像这样试试看

JSONArray array_= new JSONArray(content);
JSONObject obj = (JSONObject) array_.get(0);// or any index

然后您可以使用该对象。

您也可以使用Jackson数据绑定

创建POJO类。例如:

public class POJO {

   private int id;
   private String name;
   private String couverage;
   private String completness;
   private String consistency;

   // getters, setters and constructors

}
修改文件中的JSON

[
    {
    "id":0,
    "name": "project1",
    "couverage": "100",
    "completness": "44.8",
    "consistency": "46"
    },
    {
    "id":1,
    "name": "project2",
    "couverage": "100",
    "completness": "44.8",
    "consistency": "46"
    },
    {
    "id":2,
    "name": "project3",
    "couverage": "100",
    "completness": "44.8",
    "consistency": "46"
    }
]
代码:

public void readfromJsonFile(File jsonFile, long readTimeStamp) {
    logger.info("Read from JSON file:  {}", jsonFile.getName());
    try {
        ObjectMapper objectMapper = new ObjectMapper();
        POJO[] pojos = objectMapper.readValue(jsonFile, POJO[].class);
        for (int i = 0; i < pojos.length; ++i) {
            System.out.println(pojos[i].getId());
        }
    } catch (Exception e) {
            logger.error("Failed to parse JSON File: {}", jsonFile.getName());
    }
}
public void readfromJsonFile(文件jsonFile,长readTimeStamp){
info(“读取JSON文件:{}”,jsonFile.getName());
试一试{
ObjectMapper ObjectMapper=新的ObjectMapper();
POJO[]POJO=objectMapper.readValue(jsonFile,POJO[].class);
对于(int i=0;i
您的问题在于获取密钥和值时?是的,我无法读取我的内容字符串(或Json文件)我可以举一个Jackson的例子吗?你会喜欢吗?@AnishB。是的,如果它能帮上忙,为什么不呢?我会喜欢这个json是正确的,我没有看到方括号描述它是一个数组或列表。我没有看到每个内部json部分之间的逗号来分隔元素。即使一致性最后也有一个逗号,这也是错误的。这s甚至不能称为json:)不幸的是,仍然是同一个问题!@NabilZouita这有帮助吗?我有一个模型可以读取这些值(一致性、覆盖率,…)我可以使用该模型还是必须创建一个具有Json文件属性的类?@NabilZouita如果这有帮助,请将其标记为已接受?我花了一些时间进行测试,但这很有帮助,谢谢