2013-05-18 2 views
0

Я пытаюсь выяснить, если я JSON.stringify объект вроде этого:JavaScript извлечения данных объекта (JSON Stringify/Разобрать или без?)

{"m_id":"xxx","record": 
{"USER":"yyy","PWD","zzz","_createdAt": 
11111."_updatedAt":00000},"state":"valid"} 

, а затем попытаться JSON.parse из только USER и PWD, не нужно просто вызвать объект, но пройти строкой. как это будет работать?

спасибо.

+0

Не совсем понятно, что вы здесь просите. – Pointy

+0

вы хотите изменить JSON.stringify? –

+1

Что вы пытаетесь сделать? –

ответ

3

Я не уверен, почему вы говорите о том, чтобы подкрепить свой объект. Вы бы стягивали его, если вам нужно было отправлять данные по сети или что-то еще, а не когда вам нужно манипулировать им в JS.

... как извлечь строки в{...USER: "aaa", PWD: "zzz"...}?

Предполагая, что у вас есть переменная со ссылкой на объект, что-то вроде следующего (с или без хороших разрывов строк и отступов, чтобы сделать его удобным для чтения, и с или без кавычек вокруг имен свойств):

var obj = { 
    "m_id": "xxx", 
    "record": { 
     "USER": "yyy", 
     "PWD" : "zzz", 
     "_createdAt": 11111, 
     "_updatedAt": 00000 
    }, 
    "state": "valid" 
}; 

Тогда вы можете получить доступ к свойствам вложенной record объекта следующим образом:

console.log(obj.record.USER); // outputs "yyy" 
console.log(obj.record.PWD); // outputs "zzz" 
// etc. 

(Примечание: в вашем вопросе вы были две опечатки, запятая, который должен был двоеточие между "PWD" и "zzz", и точка, которая должна была быть запятой между 11111 и "_updatedAt". Там нет никакого способа, которым JSON.stringify() произвел бы строку, которую вы показали с этими ошибками.)

+0

Я думаю, вы правы в этом смысле, но я пытался избежать использования этого ... отредактировал вопрос выше. –

+0

Если вам нужно извлечь значения «yyy» и «zzz», то способ, который я показал, является правильным и простым способом. Я не понимаю, почему вы хотите «выполнить строгу» в соответствии с вашей обновленной формулировкой вопроса, что не имеет смысла. С помощью объекта вы можете напрямую обращаться к свойствам. С строгим представлением вам нужно написать код для синтаксического анализа строки. Вы не можете использовать 'JSON.parse()', чтобы вытащить отдельные фигуры. – nnnnnn

0

Если вы хотите строки "USER", "PWD" и т.д., как массив, а затем использовать Object.keys.

Если вы хотите повторить их, просто используйте обычный for-in enumeration.

0

я мог бы неправильно понял вопрос, но если я думаю, что это то, что он затем попробуйте использовать

var tmp = JSON.parse(string_to_convert) 

этого должно быть достаточно, чтобы преобразовать строку в соответствующую JavaScript Object

Затем вы можете сделать

for(var index in tmp){ 
console.log(tmp[index]); 
} 

, и в нем должны быть указаны все ключи первого набора свойств. Если вы хотите сделать вложенную вещь, используйте рекурсию для свойств. Надеюсь, это имеет смысл ...

Смежные вопросы