Как получить текст JSON с помощью индекса? - PullRequest
1 голос
/ 19 апреля 2011

Я получаю jsontext из базы данных как (id, val), и я должен установить в качестве имени идентификатора имя идентификатора переключателя и значение в качестве отображаемого имени или значения переключателя.JSON.parse даст значение, только если я укажу имя идентификатора.Можно ли получить значение, указав индекс.И как я тоже получу имя?Пример:

         var dbDets = JSON.parse(jsontext);
         var s=dbDets[0];
         alert(s["DB001"]); //This is working
         alert(s[0]);//This is not working.

Мое требование - как получить идентификатор и значение, используя индекс или каким-либо другим способом.Текст Json

[{"DB001": "emap", "DB002": "sampledb", "DB003": "webuserstat"}]

1 Ответ

2 голосов
/ 19 апреля 2011

Я думаю, это то, что вы имеете в виду.Вот как перебрать свойства объекта.Если это объект (а не массив), вы можете получить его члены только по имени, а не по индексу.

for (var i=0;i<dbDets.length;i++) {
    for (var prop in dbDets[i]) {
       if (dbDets.hasOwnProperty(prop)) {
          alert('index:' + i + ',name:'+prop+', value:' + dbDets[i][prop]);
       }
    }
}

возможно, вы захотите по-разному сериализовать данные, чтобы каждый элемент имел последовательноименованные свойства и сохраните ключ ("DB001") в качестве значения в объекте вместо использования его в качестве имени свойства.

Я предполагаю, что массив dbDets выглядит следующим образом:

[{ DB001: "somevalue"}, {DB002: "somevalue"}, ... ]

Было бы проще использовать информацию, если вы храните данные следующим образом:

[{ id:"DB001", value: "somevalue"}, {id: "DB002", value: "somevalue"}, ... ]

Тогда вы можете просто сказать, как получить к ней доступdbDets[index].id и dbDets[index].value

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...