反序列化json传递给j#的json

时间:2012-10-25 22:09:25

标签: c# javascript json

我目前正在尝试反序列化以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 ..

我已经尝试了几个东西,例如我在handlemessage中提供的反序列化示例,但json只是基本返回无效。我试过的其他一些例子也没有做到。

我试图用java反序列化json并再次序列化它而没有任何结果(因为有一些缺陷)。

我也试图在不知道json结构的情况下反序列化数据。

甚至可以通过javascript传递json并使用c#反序列化它?

1 个答案:

答案 0 :(得分:2)

  

我也试图在不知道json结构的情况下反序列化数据。

为此您要使用C#的dynamic类型:

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

实际上,您可以从那里开始获取所有数据,直到您了解对象的映射方式。