2013-05-18 14 views
0

我想弄清楚,如果我JSON.Stringify這樣的對象:JavaScript對象數據抽取(JSON字符串化/解析或沒有?)

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

,然後嘗試JSON.Parse出只有用戶和PWD,不必只是調用對象,而是通過stringify。這將如何工作?

謝謝。

+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. 

(注:在你的問題,你有兩個錯別字,一個逗號應在0之間已經是一個冒號和"zzz",以及一個在​​和"_updatedAt"之間的逗號。有沒有辦法,JSON.stringify()將產生你與那些錯誤顯示的字符串。)

+0

我想你是對的,但我試圖避免使用..編輯上面的問題。 –

+0

如果你的要求是提取''yyy''和''zzz''值,那麼我所顯示的方法就是正確的_和簡單的方法。我不明白你爲什麼要按照你更新的問題措辭「去串聯」,這是沒有道理的。使用對象可以直接訪問屬性。用字符串表示你必須編寫代碼來解析字符串。你不能使用'JSON.parse()'來獲取單獨的部分。 – nnnnnn

0

我可能誤解了這個問題,但如果我認爲這是什麼,然後嘗試使用

var tmp = JSON.parse(string_to_convert) 

這應該足以將字符串轉換到一個適當的JavaScript對象

然後,你可以做

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

這應該列出第一組屬性中的所有鍵。如果你想做一個嵌套的事情,那麼在屬性上使用遞歸。希望這是有道理的...