我目前正在尝试反序列化以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#反序列化它?
答案 0 :(得分:2)
我也试图在不知道json结构的情况下反序列化数据。
为此您要使用C#的dynamic
类型:
JavaScriptSerializer js = new JavaScriptSerializer();
dynamic v = js.Deserialize<dynamic>("{\"text\" : \"hi\"}");
实际上,您可以从那里开始获取所有数据,直到您了解对象的映射方式。