2

C# モジュールから Java スクリプト モジュールにデータを渡す必要があります。

さて、私が制御していないこの仲介者モジュールがあり、最終的には外部(c#)モジュールを呼び出し、XML属性内のc#モジュールからのデータを含むxml構造を返します。

JSON文字列を入れてみましたが、"\/Date(1350323947917)\/"

から来た

    DateTime dt = DateTime.Now;

    JavaScriptSerializer serailzer = new JavaScriptSerializer();
    string dateTimeString = serailzer.Serialize(dt);

そして、有効な XML として属性に適合しませんでした。

私ができることは、文字列の末尾から引用符を削除することですが、それが無効な JSON になるかどうかはわかりません

私の質問は、この JSON ルートを続行しようとする必要があるか、それとも見逃している他の落とし穴がありますか?

編集: XML を生成しているのは私のプログラムではないことを繰り返したいと思います。

4

3 に答える 3

6

JSON は UTF-8 でなければならないため、UTF-8 でエンコードされた XML を使用している限り、これは機能します。属性で使用するためにjsonを適切にエスケープするようにしてください。エスケープする必要があるのは、、、、の 4 文字だけ<>、これらは&、、、および"としてエスケープされ&lt;ます。&gt;&amp;&quot;

CDATA に問題があります。特定のシーケンスをエスケープする必要があります。また、json と xml はどちらも有効な UTF-8 である必要があるため、CDATA を使用しない場合のリスクは少なくなります。必要なのは、SGML が PCDATA と呼ぶものです。これは、まさに標準のテキスト属性または xml の nodeValue です。

したがって、あなたの質問の答えは、コンテナーのデータをエスケープすることです。この場合はxmlです。

于 2012-10-15T21:02:59.723 に答える
-1

1)「シリアライザー」のスペルを正しくする必要があります。そうしないと機能しません:)

2)XMLファイルでJSONデータを正しく保持するには、JSONデータを「CDATA」セクションに含める必要があります。

3)C#からCDATAを書き込むためのリンクは次のとおりです。

于 2012-10-15T19:00:09.007 に答える