2011-07-13 28 views
0
{ 
    'lastChangedName': null'Caption': 'Adhesive Tape', 
    'CreateByID': 0, 
    'DateOnSet': '02/10/2011', 
    'Note': 'Currently participating in Allergy shots to resolve this', 
    'Reaction': 'skin rash', 
    'SectionDescription': 'Allergy List', 
    'HistoryItemID': 1831, 
    'CurrentInDrFirst': 0, 
    'CreateDate': '/Date(1297674300000-0500)/', 
    'Code': '3746', 
    'PL': '1', 
    'Problem': { 
    "LastChargedByUserID": 0, 
    "LastChargedDate": null, 
    "ProblemStatus": 1003, 
    "DateResolved": "12\/2\/11", 
    "PatientID": 0, 
    "ProblemID": 1330 
    }, 
    'CategoryDescription': null, 
    'CategoryID': 0, 
    'CodeSystem': 'FDBDRUG', 
    'SectionID': 3, 
    'LastChangedID': 0, 

}, 
{ 
    'lastChangedName': null'Caption': 'Cats', 
    'CreateByID': 0, 
    'DateOnSet': '6/4/1997', 
    'Note': '0', 
    'Reaction': 'Sneezing', 
    'SectionDescription': 'Allergy List', 
    'HistoryItemID': 1925, 
    'CurrentInDrFirst': 0, 
    'CreateDate': '/Date(1299176220000-0500)/', 
    'Code': '', 
    'PL': '1', 
    'Problem': { 
    "LastChargedByUserID": 0, 
    "LastChargedDate": null, 
    "ProblemStatus": 1002, 
    "DateResolved": null, 
    "PatientID": 0, 
    "ProblemID": 1331 
    }, 
    'CategoryDescription': null, 
    'CategoryID': 0, 
    'CodeSystem': '', 
    'SectionID': 3, 
    'LastChangedID': 0, 

} 

这是我得到的回应,我想遍历并打印出标题值...在一个文本框中...迭代这种反应

for each(var item in response) { 
      alert(item.caption) 
} 

仅打印我的第一个标题单独。

+2

“ 'lastChangedName':null'Caption”:“ - 不两个实例中都缺少逗号? – symcbean

+0

'对于每个(var item in response){'不是有效的JavaScript。使用'for(var item in response){'来代替。 –

回答

1

引用的回复很尴尬,因为你有一系列用逗号分隔的匿名对象(你可能认为它是无效,但它不是,它只是无益)。 (假设你修复了symcbean在评论中指出的'lastChangedName': null'Caption'事情;我认为这是一个复制粘贴错误。)我认为必须比引用的更多。 (是,也许,里面[],使之成为一个对象数组?)

但总体上看:是的,for..in(不for each,只是for)通过一个对象的属性的名称中使用循环,一旦你有每个名字,你可以使用[]表示法来检索属性值。

因此,如果您可以获得对每个对象的引用,则可以使用for..in来遍历属性。

例子:

var obj, name; 

obj = { 
    foo: "bar", 
    answer: 42 
}; 

for (name in obj) { 
    console.log(name + ": " + obj[name]); 
} 

,将显示

foo: bar 
answer: 42

answer: 42 
foo: bar

的属性名在循环的顺序不是像那些在通用对象指定为您例。 (它被指定用于Array对象:使用Array对象可确保它们具有纯数字名称的任何属性  —例如数组索引  —将按数字顺序迭代[即使如此,如果您在数组上有非数字属性还有,它的不确定那些是否将是前,后,或混杂,数字的人])

1

尝试:

for(var item in response) { 
    alert(response[item].caption) 
}