gpt4 book ai didi

java - 在Java中解析没有键的JSON字符串

转载 作者:行者123 更新时间:2023-12-01 18:14:59 33 4
gpt4 key购买 nike

我是在 java 中解析 JSON 的新手。我有这个 JSON 字符串:

[
{
"projectId":5,
"userName":"clinician",
"projectName":"r",
"projectSummary":"r",
"projectLanguage":"r",
"contactPersonName":"r",
"contactPersonCV":"r",
"contactPersonEmail":"r",
"contactPersonPhone":"r"
},
[
{
"consentFileId":2,
"projectId":5,
"consentDescription":"r",
"consentFileName":"test.pdf",
"servicePathToGetConsentPdf":null
},
{
"consentFileId":3,
"projectId":5,
"consentDescription":"rrr",
"consentFileName":"test.pdf",
"servicePathToGetConsentPdf":"localhost:8080/4c_viewFile?consentFileId=3"
}
],
[
{
"anonymized_patient_identifier":"r",
"projectId":5
},
{
"anonymized_patient_identifier":"2",
"projectId":5
},
{
"anonymized_patient_identifier":"5",
"projectId":5
}
]

]

我已经设法从更简单的 JSON 字符串中获取值,但是这个字符串有多个级别,而且每个级别中都没有键。我尝试使用这样的简单代码:

     Object obj = parser.parse(data);
JSONObject jsonObject = (JSONObject) obj;
resultJson = (String) jsonObject.get("projectId");
resultJson += "\n";
resultJson += (String) jsonObject.get("userName");

但我收到错误 [java.lang.ClassCastException: org.json.simple.JSONArray 无法转换为 org.json.simple.JSONObject] 而且我也不明白如何获取较低级别的值没有 key 。我还尝试将其另存为 JSONArray 但没有成功。

最佳答案

你的json的根是JSONArray的类型,根数组中存储的第一个对象是一个对象,您可以使用 index = 0 检索它。

这是一个让你的代码正常工作的技巧:

 JSONArray jsonArray = JSONArray.fromObject(data);
JSONObject jsonObject=obj.getJSONObject(0);
resultJson = (String) jsonObject.get("projectId");
resultJson += "\n";
resultJson += (String) jsonObject.get("userName");

注意:

要将字符串转换为 JSONArray,您可以执行以下操作:

JSONArray array = JSONArray.fromObject(data);

关于java - 在Java中解析没有键的JSON字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30191860/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com