0

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>    

ただし、返されるスキーマが 1 つしかない場合もあります。

<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);
4

1 に答える 1

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 を使用できます

1つの要素でも、は!

于 2013-04-14T14:43:36.127 に答える