Это почти точно так же, как этот вопрос json получает имена ключей в виде текста? , но этот ответ не работает для меня.
У меня есть объект json
{"userList":[
{"user1":[{"username":"mike","memberSince":"01/03/2011"}]},
{"user2":[{"username":"john","memberSince":"01/05/2011"}]},
]}
Единственная причина, по которой у меня есть ярлыки "user1" и "user2", заключается в том, что я сохраняю список пользователей по userId в данных jQuery, а затем преобразую в строку, чтобы поместить его в файл cookie и отправить на другую страницу. Я знаю, это звучит глупо, но я просто создаю некоторые вещи переднего конца, чтобы доказать свою точку зрения, прежде чем делать это правильно с БД.
Итак,
jQuery('div#userList').data('user1',user1JSON);
превращается в
{"user1":[{"username":"mike","memberSince":"01/03/2011"}]}
при использовании
var userlist=JSON.stringify(jQuery('div#userList').data());
Из-за этого информация о пользователе теперь является дочерней по отношению к userId, а не просто является дочерней по отношению к userlist.
Чтобы получить информацию о пользователе, я должен сказать:
for(u=0;u<userList.length;u++){
var userInfo=userList[u][0];
}
но, к сожалению, это просто дает мне неопределенную ошибку. Если я использую
var userInfo = userList[u]['user1'];
Я правильно получаю информацию о пользователе.
Так, может кто-нибудь исправить меня относительно того, почему userList [u] [0] не работает, ИЛИ
объясните мне, как использовать JSON.stringify без добавления идентификатора пользователя в начало строки?