我正在尝试访问Json响应中的对象,但不确定如何操作。我如何使用安心访问ID 11,其中ObjID1和ObjID2是唯一的UUID?
"ObjID1": [
{
"ID": "11",
"NAME": "XYZ",
"GENDER": "M"
}
]
"ObjID2": [
{
"ID": "12",
"NAME": "Z",
"GENDER": "F"
}
]
答案 0 :(得分:0)
要声明元素的值,可以使用
function valueSeq(coll, searchVal) {
return coll.valueSeq().get(searchVal);
}
function indexedSeq(coll, searchVal) {
return coll.toIndexedSeq().get(searchVal);
}
function toArray(coll, searchVal) {
return coll.toArray()[searchVal];
}
function toList(coll, searchVal) {
return coll.toList().get(searchVal);
}
function arrayRange(len) {
return new Array(len).fill(null).map((_, i) => `thing ${i}`);
}
function timeGet(checkWhat, coll, find, iters) {
let startTime = performance.now();
let size = coll.length || coll.size;
for (let i = 1; i < iters; i++) {
let searchVal = i % coll.size,
result = find(coll, searchVal);
if(result != `thing ${searchVal}`){
console.log('fail', searchVal, `"${result}"`);
}
}
return Math.floor(performance.now() - startTime);
}
const MIN_LEN = 10,
MAX_LEN = 1e4,
ITERS = 2000;
console.log('\t\t\tindexedSeq\ttoArray\t\ttoList\t\tkeyedSeq');
for (let len = MIN_LEN; len <= MAX_LEN; len *= 10) {
const immutOrderedSetRange = Immutable.OrderedSet(arrayRange(len));
console.log(`${len}\t\t\t` +
`${timeGet('indexedSeq', immutOrderedSetRange, indexedSeq, ITERS)}\t\t` +
`${timeGet('toArray', immutOrderedSetRange, toArray, ITERS)}\t\t` +
`${timeGet('toList', immutOrderedSetRange, toList, ITERS)}\t\t` +
`${timeGet('valueSeq', immutOrderedSetRange, valueSeq, ITERS)}`)
}
使用<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/4.0.0-rc.12/immutable.js"></script>
索引then().body("ObjID1.ID[0]", equalTo("11"))
字段可让您获取数组中第一个JSON对象的ID。
如果要获取此值以进行进一步处理,则可以像这样提取它:
ID
我们解析了JSON,并使用[0]
方法将JSON对象数组保存在HashMaps列表中。列表中的每个元素都是JSON对象。
要访问第一个JSON对象,您可以使用
JsonPath path = JsonPath.from("json file or json String");
List<HashMap<String, Object>> listOfJsonObjects = path.get("ObjID1");
然后,使用经典的HashMap方法,您可以像这样在JSON对象中获取特定元素:
path.get
以上内容将返回HashMap<String, Object> jsonObject = listOfJsonObjects.get(0);
请注意,您必须强制转换为String才能获取值。 HashMap中的值是对象,因为数组中的JSON对象可能包含嵌套的数组或对象。
jsonObject.get("ID");