单个项目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);

单个项目vs多个项目

好吧,我最后做的是删除属性,然后再添加。

// 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

即使只有一个元素,哈!