Пара ключей с использованием JSON
Есть ли способ обрабатывать структуры данных с использованием объекта JSON в виде пар ключ/значение?
Если да, то может кто-то уточнить, как получить доступ к связанному объекту значения из ключа
Предположим, что у меня есть что-то вроде этого
KEY1 | VALUE OBJECT1 - (NAME: "XXXXXX", VALUE:100.0)
KEY2 | VALUE OBJECT2 - (NAME: "YYYYYYY", VALUE:200.0)
KEY3 | VALUE OBJECT3 - (NAME: "ZZZZZZZ", VALUE:500.0)
Ответы
Ответ 1
"Объект JSON" на самом деле является оксюмороном. JSON - это текстовый формат, описывающий объект, а не фактический объект, поэтому данные могут быть либо в форме JSON, либо десериализованы в объект.
JSON для этого будет выглядеть так:
{"KEY1":{"NAME":"XXXXXX","VALUE":100},"KEY2":{"NAME":"YYYYYYY","VALUE":200},"KEY3":{"NAME":"ZZZZZZZ","VALUE":500}}
После того, как вы разобрали JSON в Javascript-объект (называемый data
в коде ниже), вы можете, например, получить доступ к объекту для KEY2
, и он будет выглядеть следующим образом:
var obj = data.KEY2;
alert(obj.NAME);
alert(obj.VALUE);
Если у вас есть ключ в виде строки, вы можете использовать нотацию индекса:
var key = 'KEY3';
var obj = data[key];
Ответ 2
var object = {
key1 : {
name : 'xxxxxx',
value : '100.0'
},
key2 : {
name : 'yyyyyyy',
value : '200.0'
},
key3 : {
name : 'zzzzzz',
value : '500.0'
},
}
Если это так, как выглядит ваш объект, и вы хотите, чтобы все имя и значение были зациклированы, я бы попытался сделать что-то вроде.
$.each(object,function(key,innerjson){
/*
key would be key1,key2,key3
innerjson would be the name and value **
*/
//Alerts and logging of the variable.
console.log(innerjson); //should show you the value
alert(innerjson.name); //Should say xxxxxx,yyyyyy,zzzzzzz
});
Ответ 3
JSON (= J ava S cript O bject N), является легким и быстрым механизмом преобразования объектов Javascript в строку и наоборот.
Поскольку объекты Javascripts состоят из пар key/value
, это очень простое в использовании и доступ к JSON таким образом.
Итак, если у нас есть объект:
var myObj = {
foo: 'bar',
base: 'ball',
deep: {
java: 'script'
}
};
Мы можем преобразовать это в строку, вызвав window.JSON.stringify(myObj);
с результатом "{"foo":"bar","base":"ball","deep":{"java":"script"}}"
.
Другим способом мы назовем window.JSON.parse("a json string like the above");
.
JSON.parse()
возвращает объект/массив javascript при успешном завершении.
alert(myObj.deep.java); // 'script'
window.JSON
не доступен во всех браузерах. Некоторым "старым" браузерам нужен небольшой плагин javascript, который предлагает вышеупомянутую функциональность. Чтобы узнать дополнительную информацию, http://www.json.org.
Ответ 4
Я вижу, что вы пытаетесь спросить, и я думаю, что это самый простой ответ на то, что вы ищете, учитывая, что вы не знаете, сколько пар ключей отправлено.
Простая структура JSON для пары ключей
var data = {
'XXXXXX' : '100.0',
'YYYYYYY' : '200.0',
'ZZZZZZZ' : '500.0',
}
Использование кода JavaScript для доступа к парам ключей
for (var key in data)
{ if (!data.hasOwnProperty(key))
{ continue; }
console.log(key + ' -> ' + data[key]);
};
Выход консоли должен выглядеть следующим образом
XXXXXX -> 100.0
YYYYYYY -> 200.0
ZZZZZZZ -> 500.0
Вот JSFiddle, чтобы показать, как это работает.