0

私は現在、この方法でjavascriptによってベースになったjsonを逆シリアル化しようとしています:

window.external.handlemessage(json);

そして、次のようにC#によって処理されます:

   public void handlemessage(string json)
   {
            JavaScriptSerializer deserializer = new JavaScriptSerializer();

            Dictionary<string, object> deserializedDictionary1 = (Dictionary<string, object>)deserializer.Deserialize(json, typeof(object));
            Dictionary<string, object> deserializedDictionary2 = deserializer.Deserialize<Dictionary<string, object>>(json);
            object objDeserialized = deserializer.DeserializeObject(json);

   }

受け渡しは、たとえばプレーンテキストでは正常に機能しますが、json では機能しません..

ハンドルメッセージで提供した逆シリアル化の例など、いくつか試しましたが、jsonは基本的に無効を返します。そして、私が試した他のいくつかの例も、それをしませんでした.

私はjsonをJavaでデシリアライズしようとしましたが、結果が得られずに再度シリアライズしました(何らかの欠陥があった場合)。

また、json構造を知らずにデータを逆シリアル化しようとしています。

javascriptでjsonを渡し、c#でシリアル化を解除することさえ可能ですか?

4

1 に答える 1

2

また、json構造を知らずにデータを逆シリアル化しようとしています。

dynamicそのためには、C# の型を使用します。

JavaScriptSerializer js = new JavaScriptSerializer();
dynamic v = js.Deserialize<dynamic>("{\"text\" : \"hi\"}");

実際、オブジェクトがどのようにマッピングされているかを理解するまで、すべてのデータについてそこから始めることができます。

于 2012-10-25T23:13:07.157 に答える