2013-03-27 68 views
0

假设我有此JSON如何从JSON对象内部JSON

{"widget": { 
    "debug": "on", 
    "window": { 
     "title": "Sample Konfabulator Widget", 
     "name": "main_window", 
     "width": 500, 
     "height": 500 
    }, 
    "image": { 
     "src": "Images/Sun.png", 
     "name": "sun1", 
     "hOffset": 250, 
     "vOffset": 250, 
     "alignment": "center" 
    }, 
    "text": { 
     "data": "Click Here", 
     "size": 36, 
     "style": "bold", 
     "name": "text1", 
     "hOffset": 250, 
     "vOffset": 100, 
     "alignment": "center", 
     "onMouseUp": "sun1.opacity = (sun1.opacity/100) * 90;" 
    } 
}}  

我有这些对象的列表和可变puting这样

var myobjects = data

其中包含的列表上述对象

现在,这是工作正常,但现在我有一个问题。而不是直接获取对象的名单,我现在有包含这些对象liek这

"id": "21" 
"myobject": 
{ 
{"widget": { 
    "debug": "on", 
    "window": { 
     "title": "Sample Konfabulator Widget", 
     "name": "main_window", 
     "width": 500, 
     "height": 500 
    }, 
    "image": { 
     "src": "Images/Sun.png", 
     "name": "sun1", 
     "hOffset": 250, 
     "vOffset": 250, 
     "alignment": "center" 
    }, 
    "text": { 
     "data": "Click Here", 
     "size": 36, 
     "style": "bold", 
     "name": "text1", 
     "hOffset": 250, 
     "vOffset": 100, 
     "alignment": "center", 
     "onMouseUp": "sun1.opacity = (sun1.opacity/100) * 90;" 
    } 
}} 
} 

而不是让childobjects的列表中的一个父对象,我OW有data

怎能父对象名单从父对象的列表获得子对象的名单像以前一样

var childobjects = data.childobjects

我想是因为我ahve模板编码只炒锅如果我有对象

回答

0

的直接列表你想扁平化对象的数组?

// suppose data is like this: 
var data = [ 
    { id: 1, myobject: {widgets:'',whatever:''}}, 
    { id: 5, myobject: {widgets:'',whatever:''}}, 
    { id: 23, myobject: {widgets:'',whatever:''}} 
] 

那么这个代码:

var myobjects = []; 

for (key in data) { 
    myobjects.push(data[key].myobject); 
} 

将离开myobjects等于:

[ 
    {widgets:'',whatever:''}, 
    {widgets:'',whatever:''}, 
    {widgets:'',whatever:''} 
] 
+0

对不起,我没有得到它。你可以通过一个小例子来展示,它做了什么。但我可以肯定,我想要那样的 – user194932147 2013-03-27 05:56:59

+0

更新了答案。 – 2013-03-27 05:59:47

+0

在创建列表之前,是否可以在widgets数组中插入一些类似'id = 34'的值给每个元素 – user194932147 2013-03-27 06:44:08

-1

我认为这是你需要的东西:

<script type="text/javascript"> 
var parents = [{"id": "21", 
       "myobject": 
       {"widget": { 
        "debug": "on", 
        "window": { 
          "title": "Sample Konfabulator Widget", 
           "name": "main_window", 
           "width": 500, 
           "height": 500 
          }, 
       "image": { 
       "src": "Images/Sun.png", 
       "name": "sun1", 
       "hOffset": 250, 
       "vOffset": 250, 
       "alignment": "center" 
       }, 
       "text": { 
         "data": "Click Here", 
         "size": 36, 
         "style": "bold", 
         "name": "text1", 
         "hOffset": 250, 
         "vOffset": 100, 
        "alignment": "center", 
        "onMouseUp": "sun1.opacity = (sun1.opacity/100) * 90;" 
       } 
      } 
     }}, 
       {"id": "22", 
       "myobject": 
       {"widget": { 
        "debug": "on", 
        "window": { 
          "title": "Sample Konfabulator Widget", 
           "name": "main_window", 
           "width": 500, 
           "height": 500 
          }, 
       "image": { 
       "src": "Images/Sun.png", 
       "name": "sun1", 
       "hOffset": 250, 
       "vOffset": 250, 
       "alignment": "center" 
       }, 
       "text": { 
         "data": "Click Here", 
         "size": 36, 
         "style": "bold", 
         "name": "text1", 
         "hOffset": 250, 
         "vOffset": 100, 
        "alignment": "center", 
        "onMouseUp": "sun1.opacity = (sun1.opacity/100) * 90;" 
       } 
      } 
     }} 
    ]; 
    for(x in parents){ 
     console.log(parents[x].myobject); 
    } 
    </script>