我正在使用以下库
https://github.com/Leonidas-from-XIV/node-xml2js
将XML转换为JSON。转换后,console.log产生以下内容
{ '@':
{ RaceDayDate: '2012-03-15T00:00:00',
Year: '2012',
Month: '3',
Day: '15',
DayOfTheWeek: 'Thursday',
MonthLong: 'March',
IsCurrentDay: '1',
IsPresaleMeeting: '0',
ServerTime: '2012-03-15T19:48:47.840' },
PresaleRaceDate: [ { '@': [Object] }, { '@': [Object] }, { '@': [Object] } ],
Meeting:
[ { '@': [Object], Pool: [Object], Race: [Object] },
{ '@': [Object], Pool: [Object], Race: [Object] },
{ '@': [Object], Pool: [Object], Race: [Object] },
@是什么意思并假设数据存储在名为'result'的变量中,访问RaceDayDate,Year,Month等的语法是什么?结果。@不起作用
答案 0 :(得分:10)
'@'
只是一个像其他任何字符串一样的字符串。在JavaScript中,您可以使用
result['@']
另请注意,输入无效JSON,因为它缺少许多字典键和Object
的引号,使用单引号而不是双引号,并以逗号结尾。
答案 1 :(得分:1)
尝试result['@'].RaceDayDate
。
答案 2 :(得分:0)
它对JSON没有特殊意义。
此特定数据将其用作键字符串。你必须知道数据的含义才能找出原因。
答案 3 :(得分:0)
我不确定这是否与此示例相关,但我目前正在与允许您传递xml或json的API集成;在json消息中,作为该消息的xml版本中的属性存储的任何字段都以' @'为前缀。 character - 我认为这是因为json被转换为xml进行处理,并且它们使用的任何工具都使用@来区分元素和属性。
答案 4 :(得分:0)
正如上面提到的“ Clarkeye”,我为某些标签添加了一个带有“ @”前缀的标签(下面给出了示例数据)。这些是该消息的xml版本中的属性。我怀疑转换工具会添加此前缀。 json样本数据
{
"@context": "\/v1\/contexts\/Book",
"@type": "Recipe",
"id": "12136",
"note": [
{
"@id": "\/v1\/terms\/331",
"@type": "SQL",
"id": 331,
"display": "SQL",
"taxonomy": "post_tag"
}
]