Gal Appelbaum
Gal Appelbaum

Reputation: 1955

JavaScript object data extraction (JSON Stringify/Parse or without?)

I am trying to figure out if I JSON.Stringify an object like this:

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

and then try to JSON.Parse out only the USER and PWD, not have to just call the object, but go through stringify. how would that work?

thanks.

Upvotes: 0

Views: 8171

Answers (3)

nnnnnn
nnnnnn

Reputation: 150020

I'm not sure why you're talking about stringifying your object. You'd stringify it if you needed to send the data across a network or something, not when you need to manipulate it in JS.

...how do I extract the strings in {...USER: "aaa", PWD: "zzz"...}?

Assuming you have a variable referring to the object, something like the following (with or without nice line breaks and indenting to make it readable, and with or without quotes around the property names):

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

Then you can access the properties in the nested record object as follows:

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

(Note: in your question you had two typos, a comma that should've been a colon in between "PWD" and "zzz", and a dot that should've been a comma in between 11111 and "_updatedAt". There's no way that JSON.stringify() would have produced the string that you showed with those mistakes.)

Upvotes: 3

Roveris
Roveris

Reputation: 108

I might have misunderstood the question, but if I think it is what it is then try using

var tmp = JSON.parse(string_to_convert) 

this should suffice to convert your string to a proper Javascript Object

Then you can do

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

and this should list all the keys on the first set of properties. If you want to do a nested thing, then use recursion on the properties. Hope this makes sense...

Upvotes: 0

Bergi
Bergi

Reputation: 664406

If you want the strings "USER", "PWD" etc as an array, then use Object.keys.

If you want to iterate them, just use a normal for-in enumeration.

Upvotes: 0

Related Questions