Java 将字符串对象解析为JSONObject
我需要将包含JSON文件数据的字符串解析为JSONObject,并对其内容进行迭代,以获取其键和值,以便以后进一步处理。在将文件转换为字符串后,我一直在解析文件内容。我尝试使用user parse(),quote(),但似乎我“遗漏了一个细节,犯了一个重大错误” 这是我处理的json文件的一个片段:Java 将字符串对象解析为JSONObject,java,json,spring-boot,Java,Json,Spring Boot,我需要将包含JSON文件数据的字符串解析为JSONObject,并对其内容进行迭代,以获取其键和值,以便以后进一步处理。在将文件转换为字符串后,我一直在解析文件内容。我尝试使用user parse(),quote(),但似乎我“遗漏了一个细节,犯了一个重大错误” 这是我处理的json文件的一个片段: { { "id":0, "name": "project1", "couverage"
{
{
"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如果这有帮助,请将其标记为已接受?我花了一些时间进行测试,但这很有帮助,谢谢