Подтвердить что ты не робот

Пара ключей с использованием 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)  
4b9b3361

Ответ 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, чтобы показать, как это работает.