2

JSON RESTful 応答を XML に変換するために、.NET 4.0 アプリケーションで Json.NET を使用しています。JSON 子キーにスペースがある場合、JSON を XML に変換する際に問題が発生します。

これまでのところ、ほとんどの JSON 応答を変換できます。

以下は、XML の生成に使用しているコードと一緒に応答の例です。

{
   num_reviews: "2",
   page_id: "17816",
   merchant_id: 7165
}

そして、エラーの原因となっている応答は次のとおりです。

    [
    {
    headline: "ant bully",
    created_date: "2010/06/12",
    merchant_group_id: 10126,
    profile_id: 0,
    provider_id: 10000,
    locale: "en_US",
    helpful_score: 1314,
    locale_id: 1,
    variant: "",
    bottomline: "Yes",
    name: "Jessie",
    page_id: "17816",
    review_tags: [
    {
    Pros: [
    "Easy to Learn",
    "Engaging Story Line",
    "Graphics",
    "Good Audio",
    "Multiplayer",
    "Gameplay"
    ]
    },
    {
    Describe Yourself: [
    "Casual Gamer"
    ]
    },
    {
    Best Uses: [
    "Multiple Players"
    ]
    },
    {
    Primary use: [
    "Personal"
    ]
    }
    ],
    rating: 4,
    merchant_id: 7165,
    reviewer_type: "Verified Reviewer",
    comments: "fun to play"
    },
    {
    headline: "Ok game, but great price!",
    created_date: "2010/02/28",
    merchant_group_id: 10126,
    profile_id: 0,
    provider_id: 10000,
    locale: "en_US",
    helpful_score: 1918,
    locale_id: 1,
    variant: "",
    bottomline: "Yes",
    name: "Alleycatsandconmen",
    page_id: "17816",
    review_tags: [
    {
    Pros: [
    "Easy to Learn",
    "Engaging Story Line"
    ]
    },
    {
    Describe Yourself: [
    "Frequent Player"
    ]
    },
    {
    Primary use: [
    "Personal"
    ]
    },
    {
    Best Uses: [
    "Kids"
    ]
    }
    ],
    rating: 3,
    merchant_id: 7165,
    reviewer_type: "Verified Reviewer",
    comments: "This is a cute game for the kids and at a great price. Just don't expect a whole lot."
    }
    ]

これまでのところ、JSON データの C# オブジェクトへのマッピングを作成し、そのクラスの XML を生成することを検討してきました。しかし、これを動的に保つ方法はありますか? または、スペースを %20 エンコーディングとして扱う方法はありますか?

4

3 に答える 3

1

この質問は、C# で XML に変換する前に JSON 文字列を検証する方法と同じです

ご不明な点がございましたら、お気軽にお問い合わせください。

于 2013-08-19T05:11:48.323 に答える
1

XmlConvert.EncodeNamesを使用して無効な文字をエスケープするを呼び出すことができます_

たとえば、スペースは になり_x0020_ます。

于 2013-07-23T14:57:10.613 に答える
0

XMLElement 名にスペースを含めることはできません。スペースをアンダースコアまたはその他の要素に置き換える必要があります。それができない場合は、そのノードの属性としてその値を入れてみてください。これが理にかなっていることを願っています。

于 2013-07-24T10:03:54.337 に答える