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 基本上只是返回无效。我尝试过的其他几个例子也没有做到。

我试图用java反序列化json并再次序列化它没有结果(以防有一些缺陷)。

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

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

4

1 回答 1

2

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

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

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

事实上,您可以从那里开始处理所有数据,直到您了解对象是如何映射的。

于 2012-10-25T23:13:07.157 回答