gpt4 book ai didi

java - 当键位于层次结构下时,使用 Java 提取 JSON 中键的值

转载 作者:行者123 更新时间:2023-11-30 06:58:00 24 4
gpt4 key购买 nike

我需要从以下 JSON 中提取 RecordOne 的值。

{
"errors": [],
"data": {
"paging": {
"RecordOne": 8,
"RecordTwo": 9,
"recordThree": 2,
"totalNumberOfRecords": 86052
},
"products": [
{
"testabstract": "test data",
"authors": "Frank Jr.",
"invertedauthors": "Frank VJr.",
"formatCode": "KND"
}
]
}
}

我使用 Java 作为语言和 JSON 对象来实现相同的目的,以下是我正在使用的:

protected String getTokenValueUnderHeirarchy(String responseString){
JSONObject json = new JSONObject(responseString);
String val= json.getJSONObject("data").getJSONObject("paging").getString("RecordOne");
System.out.println("val::"+val);
return val;
}

我得到的值 val = 1,它应该是 8

如果我尝试使用相同的代码查找键totalNumberOfRecords的值,它会返回正确的值,即86052

我知道这很愚蠢,但我无法理解。

最佳答案

当我使用 JSON 示例运行您的代码时,我最终得到了“JSONException: JsonObject["RecordOne"] 不是字符串”......但事实并非如此。用双引号将 8 括起来:“8”返回您期望的值。您可以使用其他获取方法访问此值:如果您愿意,可以使用 getInt。

此测试用例解析 String 和 int。我从你的例子中提取了这个。它适合你吗?

package org.nadnavillus.test;

import org.json.JSONObject;
import org.junit.Test;

public class TestCase {

protected String getTokenValueUnderHeirarchy(String responseString) throws Exception {
JSONObject json = new JSONObject(responseString);
String val= json.getJSONObject("data").getJSONObject("paging").getString("RecordOne");
System.out.println("val::"+val);
return val;
}

protected String getTokenValueUnderHeirarchyInt(String responseString) throws Exception {
JSONObject json = new JSONObject(responseString);
int val= json.getJSONObject("data").getJSONObject("paging").getInt("RecordTwo");
System.out.println("val::"+val);
return String.valueOf(val);
}

@Test
public void testJson() throws Exception {
String input = "{\"errors\": [], \"data\": {\"paging\": {\"RecordOne\": \"8\", \"RecordTwo\": 9, \"recordThree\": 2, \"totalNumberOfRecords\": 86052}}}";
String test = this.getTokenValueUnderHeirarchy(input);
System.out.println(test);
test = this.getTokenValueUnderHeirarchyInt(input);
System.out.println(test);
}
}

关于java - 当键位于层次结构下时,使用 Java 提取 JSON 中键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41452086/

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