单个项目vs多个项目
本文关键字:项目 vs 单个 | 更新日期: 2023-09-27 18:09:10
发现单条目和多条目的XML对象序列化会给我不同的格式,从而访问它会不同。
例如:
{
"schemalist": {
"schema": {
"fieldid": "email",
"displayname": "email",
}
}
}
和
{
"schemalist": {
"schema": [
{
"fieldid": "name",
"displayname": "name",
},
{
"fieldid": "email",
"displayname": "email",
}
]
}
}
所以当我解析它们时。ParseJSON,我必须以不同的方式访问
schemalist.schema.fieldid和schemalist.schema [0] .fieldid
是否有一种方法可以转换为json,即使是单个项目,所以我可以使用schemalist.schema[0]。菲尔德甚至跨越了单个或多个项目?
谢谢!
编辑:下面是我的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);
好吧,我最后做的是删除属性,然后再添加。
// 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[我].fieldid
即使只有一个元素,哈!