2014-11-16 72 views
1

我從MySQL表中檢索具有下列格式的JSON編碼對象:印刷陣列

{immovable_property: 
"{"immovable_subdivision":["a","b","c","d"], 
"immovable_prop_details":["a","b ","c","d"], 
"immovable_cost":["a","b","c","d"], 
"immovable_present_value":["a","b","c","d"], 
"immovable_owner":["a","b","c","d"], 
"immovable_how_acquired":["a","b","c","d"], 
"immovable_annual_income":["a","b","c","d"], 
"immovable_remarks":["a","b","c","d"], 
"add_subdivision":"e", 
"add_prop_details":"e", 
"add_cost":"e", 
"add_present_value":"e", 
"add_owner":"e", 
"add_how_acquired":"e", 
"add_annual_income":"e", 
"add_remarks":"e "}" 
} 

我無法打印鍵的值和誠實,我不知道是否它是適當的JSON格式。任何幫助,高度讚賞。

EDITED 用於檢索使用Laravel是如下數據我的代碼:I印刷返回的對象使用

$data = Property::where("users_id","=",Input::get('user_id'))->select('immovable_property')->first(); 
return Response::json($data); 

document.write(data.immovable_property); 

其給出由JSONLint驗證輸出:

{ 
    "immovable_subdivision": [ 
     "a", 
     "b", 
     "c", 
     "d" 
    ], 
    "immovable_prop_details": [ 
     "a", 
     "b ", 
     "c", 
     "d" 
    ], 
    "immovable_cost": [ 
     "a", 
     "b", 
     "c", 
     "d" 
    ], 
    "immovable_present_value": [ 
     "a", 
     "b", 
     "c", 
     "d" 
    ], 
    "immovable_owner": [ 
     "a", 
     "b", 
     "c", 
     "d" 
    ], 
    "immovable_how_acquired": [ 
     "a", 
     "b", 
     "c", 
     "d" 
    ], 
    "immovable_annual_income": [ 
     "a", 
     "b", 
     "c", 
     "d" 
    ], 
    "immovable_remarks": [ 
     "a", 
     "b", 
     "c", 
     "d" 
    ], 
    "add_subdivision": "e", 
    "add_prop_details": "e", 
    "add_cost": "e", 
    "add_present_value": "e", 
    "add_owner": "e", 
    "add_how_acquired": "e", 
    "add_annual_income": "e", 
    "add_remarks": "e " 
} 
+2

使用[JSONLint(http://jsonlint.com/)來檢查你的JSON的有效性。 – ekad

回答

3

您的編輯完全改變了問題。

是的,那個JSON是有效的。你可以通過JSON.parse解析它:

var obj = JSON.parse(immovable_property); 

...然後訪問結果的命名屬性,例如:

console.log(obj.immovable_subdivision.length); // 4 

您可以通過Object.keys,得到所有的屬性名的列表,其中返回一個數組。

例子:

// Your string 
 
var immovable_property = 
 
    '{' + 
 
    ' "immovable_subdivision": [' + 
 
    '  "a",' + 
 
    '  "b",' + 
 
    '  "c",' + 
 
    '  "d"' + 
 
    ' ],' + 
 
    ' "immovable_prop_details": [' + 
 
    '  "a",' + 
 
    '  "b ",' + 
 
    '  "c",' + 
 
    '  "d"' + 
 
    ' ],' + 
 
    ' "immovable_cost": [' + 
 
    '  "a",' + 
 
    '  "b",' + 
 
    '  "c",' + 
 
    '  "d"' + 
 
    ' ],' + 
 
    ' "immovable_present_value": [' + 
 
    '  "a",' + 
 
    '  "b",' + 
 
    '  "c",' + 
 
    '  "d"' + 
 
    ' ],' + 
 
    ' "immovable_owner": [' + 
 
    '  "a",' + 
 
    '  "b",' + 
 
    '  "c",' + 
 
    '  "d"' + 
 
    ' ],' + 
 
    ' "immovable_how_acquired": [' + 
 
    '  "a",' + 
 
    '  "b",' + 
 
    '  "c",' + 
 
    '  "d"' + 
 
    ' ],' + 
 
    ' "immovable_annual_income": [' + 
 
    '  "a",' + 
 
    '  "b",' + 
 
    '  "c",' + 
 
    '  "d"' + 
 
    ' ],' + 
 
    ' "immovable_remarks": [' + 
 
    '  "a",' + 
 
    '  "b",' + 
 
    '  "c",' + 
 
    '  "d"' + 
 
    ' ],' + 
 
    ' "add_subdivision": "e",' + 
 
    ' "add_prop_details": "e",' + 
 
    ' "add_cost": "e",' + 
 
    ' "add_present_value": "e",' + 
 
    ' "add_owner": "e",' + 
 
    ' "add_how_acquired": "e",' + 
 
    ' "add_annual_income": "e",' + 
 
    ' "add_remarks": "e "' + 
 
    '}'; 
 

 
// Parse it 
 
var obj = JSON.parse(immovable_property); 
 

 
// Access property via dot notation with a literal name 
 
snippet.log('obj.immovable_subdivision.length = ' + obj.immovable_subdivision.length); // 4 
 

 
// Or via brackets notation with a string namne 
 
snippet.log('obj["immovable_subdivision"].length = ' + obj["immovable_subdivision"].length); // 4 
 

 
// You can get all the keys (property names) as an 
 
// array of strings from Object.keys, which lets you 
 
// output them using bracketed notation 
 
snippet.log("All properties:"); 
 
Object.keys(obj).forEach(function(key) { 
 
    snippet.log('obj["' + key + '"] = ' + obj[key]); 
 
});
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 --> 
 
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

+0

謝謝。你能檢查更新的問題嗎?之前的「json」被從console.log中複製粘貼了。 –

+0

@MontySwanson:我已經更新了新問題的答案。 –

+0

完美...謝謝! –