2009-05-23 11 views
3

JSON.Netライブラリに関する質問があります。通常、私はこのようなXML文字列を持っている:Json.netプロパティ:単一の値または値の配列

<Config> 
    .... 
    <Name>some name</Name> 
    .... 
</Config> 

それから私はこのようなJSON文字列に文字列を変換するためにJSON.Netライブラリを使用します。

Congif: { 
    ... 
    Name: "some name", 
    ... 
} 

最後に、私はインスタンスに、このJSON文字列をマッピングConfigクラスの:

Config instance = JsonConvert.DeserializeObject<Config>(json); 

nameプロパティは、私のConfigクラスの名前の配列である場合:

私は、XML文字列から変換されたJSON文字列を取得するので、私はそこに一つ以上の名前のノードを有することができる

Name: ["some name"], 

は、私は、JSON文字列に配列を次のように定義されていることを理解しています。これは、XMlに1つの名前しか定義されていないときに問題になります。私は文字列をstring []に変換できないと不平を言って例外を得るでしょう。複数のNameノードがXMLファイルに定義されていればOKです。

マッピングがターゲットプロパティを参照しているときにJSONライブラリが文字列の配列に自動的に変換されるようにする方法やオプションがあるかどうかわかりません。名前はNameの値が1つだけでも配列型プロパティですか?

+0

私は同じ問題で苦労しています。 :-( –

答えて

1

私はJSON.Netの方法で受け入れる必要があると思います。 jsonStringにキーの文字列値が含まれている場合、文字列の配列ではなく文字列値に値を変換する必要があります。マッピングプロパティーも配列型です。

私ができることは、XML文字列に空の値ノードを追加して、XML文字列内にノードが1つだけの場合はノードの配列のようにするか、空の値ノードをすべての既存ノードに追加します。

唯一の問題は、空のエントリが配列に追加されることです。

関連する問題