发现用单个项目和多个项目序列化XML对象给了我不同的格式,因此访问它会有所不同。
例如,使用单个项目:
{
"schemalist": {
"schema": {
"fieldid": "email",
"displayname": "email",
}
}
}
和
{
"schemalist": {
"schema": [
{
"fieldid": "name",
"displayname": "name",
},
{
"fieldid": "email",
"displayname": "email",
}
]
}
}
所以当我解析jQuery.ParseJSON时,我必须以不同的方式访问它们
schemalist.schema.fieldid 和 schemalist.schema [0] .fieldid
有没有办法转换为json即使单项,所以我可以使用 schemalist.schema [0] .fieldid甚至跨越单个,多个项目?
谢谢!
编辑: 这是我的xml输入:
<schemalist>
<schema>
<fieldid><![CDATA[name]]></fieldid>
<displayname><![CDATA[name]]></displayname>
</schema>
<schema>
<fieldid><![CDATA[email]]></fieldid>
<displayname><![CDATA[email]]></displayname>
</schema>
但有时返回只能有一个架构:
<schemalist>
<schema>
<fieldid><![CDATA[email]]></fieldid>
<displayname><![CDATA[email]]></displayname>
</schema>
</schemalist>
然后我会像这样进行转换:
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
return Newtonsoft.Json.JsonConvert.SerializeObject(doc);
答案 0 :(得分:0)
好吧,我最终做的是删除属性然后再添加它。
// run the code below with $(schemalist.schemalist.schema).length == 1
// create a schema array
var schema = [];
schema.push(schemalist.schemalist.schema);
// delete the property
delete schemalist.schemalist.schema;
schemalist['schema'] = schema;
所以不要访问属性fieldid: schemalist.schema.fieldid,
我可以用 schemalist.schema [I] .fieldid
即使有一个元素,哈哈!