{
'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)
}
这只会打印出第一个标题。
答案 0 :(得分: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 :(得分:1)
尝试:
for(var item in response) {
alert(response[item].caption)
}