我正在努力从格式如下的JSON文件中检索一些值:
{
"search": {
"entry": [
{
"found": "identity=9454532,l=big,ton=grand,k=molvi",
"attribute": [
{
"name": "firstname",
"value": [
"Lucas"
]
},
{
"name": "lastname",
"value": [
"Brandon"
]
}
]
}
],
"return": {
"code": 0,
"message": "Success",
"count": 1
}
}
}
我尝试了不同的方法(json,gson,jayway-
JsonPath),但是我无法从“属性”数组中获取值,只能从第一个数组中获取值。我不知道如何指定“属性”是一个JSONArray而不是一个JSONObject或如何为其设置正确的路径。这是我正在玩的最后一个代码,当它找到一个数组时停止:
public void String nameObtain (String email) throws IOException{
String link = "http://jsonfile/" + email;
JSONObject json = readJsonFromUrl(link);
JSONObject rootObject = json.getJSONObject("search");
JSONArray firstArray = rootObject.getJSONArray("entry");
for (int i = 0, size = firstArray.length(); i < size; i++) {
JSONObject objectInArray = firstArray.getJSONObject(i);
String[] elementNames = JSONObject.getNames(objectInArray);
System.out.printf("%d ELEMENTS IN CURRENT OBJECT:\n", elementNames.length);
for (String elementName : elementNames) {
String value = objectInArray.getString(elementName);
System.out.printf("name=%s, value=%s\n", elementName, value);
}
}
}
我想做的就是获得卢卡斯或布兰登的价值。任何帮助都感激不尽!
使用的库:
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
检查以下代码并逐步解析
JSONObject search = (JSONObject) jsonObject.get("search");//1
JSONArray entry = (JSONArray) search.get("entry");//2
for (int i = 0; i < entry.size(); i++) {
JSONObject jsonObject1 = (JSONObject) entry.get(i);//3
JSONArray jsonarray1 = (JSONArray) jsonObject1.get("attribute");//4
for (int j = 0; j < jsonarray1.size(); j++) {
System.out.println(((JSONObject) jsonarray1.get(j)).get(
"value").toString());//5
}
}
它将逐步给出所提到的值:
1){“ entry”:[{“ found”:“ identity = 9454532,l = big,ton = grand,k = molvi”,“
attribute”:[{“ name”:“ firstname”,“ value”:[ “ Lucas”]},{“ name”:“姓氏”,“
value”:[“ Brandon”]}}}}],“返回”:{“ code”:0,“ count”:1,“ message”: “成功”}}2)[{“ found”:“ identity = 9454532,l = big,ton = grand,k = molvi”,“
attribute”:[{“ name”:“ firstname”,“ value”:[“ Lucas”]} ,{“ name”:“
lastname”,“ value”:[“ Brandon”]}]}]]3){“ found”:“ identity = 9454532,l = big,ton = grand,k = molvi”,“
attribute”:[{“ name”:“ firstname”,“ value”:[“ Lucas”]}, {“ name”:“
lastname”,“ value”:[“ Brandon”]}]}4)[{“ name”:“ firstname”,“ value”:[“ Lucas”]},{“ name”:“ lastname”,“
value”:[“ Brandon”]}]5)[“ Lucas”]和[“ Brandon”]
因此,基本上,您必须分别照顾JSONObject和JSONArray并进行相应的解析。
我正在努力从JSON文件中检索一些值,格式如下: 我尝试过不同的方法(json、gson、jayway JsonPath),但我无法从“属性”数组中获取值,只能从第一个数组中获取值。我不知道如何指定“attribute”是JSONArray而不是JSONObject,也不知道如何设置它的正确路径。这是我玩的最后一个代码,它在创建数组时停止: 我想做的是得到卢卡斯或布兰登的价值观。任何帮助都将不胜感
我已经成功地编写了一个方法,当JavaScript文件包含JSON数组及其下面的代码时输出嵌套的JSON,但是我在使用Ajax从外部文件检索相同数据时遇到了严重的麻烦。 这里是正在工作的本地版本。 但是,我花了两天的时间来研究实现这一点的方法,将JSON单独保存在一个单独的文件中。 我在想,有一些明显的东西我完全错过了。我也试过这里演示的方法,结果完全一样。 谁能给我指出正确的方向吗? 谢谢!
我已经在GraphQL AppSync查询上制定了一个相当复杂的DynamoDB解析器链。我很想知道的是,我是否可以以一种需要更少DynamoDB查询的方式设计它。 以下是我的GraphQL模式: 这是我正在进行的查询: 我的DynamoDB表设置如下: 因此,在我的解析器中,我将: > 接下来,在模型对象中有一个附加到“标记”的解析器。这将使用两个表达式进行查询。一个用于PartitionKey
问题内容: 我正在尝试更新嵌套数组中的值,但无法使其正常工作。 我的对象是这样的 我需要将值推送到“ answeredBy”数组。 在下面的示例中,我尝试将“成功”字符串推到“ 123 _id”对象的“ answeredBy”数组中,但是它不起作用。 我找到了此链接,但其答案仅表示我应该使用类似结构的对象而不是数组。这不适用于我的情况。我真的需要将我的对象嵌套在数组中 如果您能在这里帮助我,那就太
我创造了一个这样的形式 如果它没有验证,我将重新显示填充了数据的表单。填充问题数据并不难 但是,我无法从答案模型(具有内容和链接字段)的会话哈希中获取嵌套值。这不起作用。 我觉得是因为hash对象中的0,1,2迭代。例如,这是hash对象的一个片段(完整显示在下面) 但我不知道在构建问题答案时如何表达这一点 当我尝试构建时,在尝试从哈希对象中提取数据时,我不会表示迭代。你能解释一下我如何修改这一行
如何使用jolt转换将平面JSON转换为嵌套JSON?我对JSON和jolt是新手。 输入: 预期输出: 编辑:我想在< code>SubFunds中添加一个新字段,但是新字段不在JSON文件中,它是计算字段,我可以按原样添加示例吗 并重命名字段: