Json.Net解析不同格式的json

时间:2013-11-19 06:09:56

标签: c# javascript json node.js

  1. 使用NodeJ创建的聊天室示例程序。
  2. Node.js服务器将响应3种不同格式的Json。
  3. 我创建了一个Winform程序来接受来自Websocket的Json。
  4. 我使用Json.NET JsonMessage jsonResponse = JsonConvert.DeserializeObject(e.Message.ToString()); deSerialize一种Node.js格式
  5. 如何在序列化时识别Json的不同格式?
  6. 三种类型的Json格式

    1. 颜色:“{\”type \“:\”color \“,\”data \“:\”blue \“}”

    2. 消息:“{\”type \“:\”message \“,\”action \“:\”更改颜色\“}”

    3. 历史记录:“{\”type \“:\”history \“,\”data \“:[{\”time \“:1384825833181,\”text \“:\”这是测试\“,\ “作者”:\“Tom \”,\“color \”:\“green \”},{\“time \”:1384842730192,\“text \”:\“WinForm Send \”,\“author \ “:\”WinForm说你好!\“,\”color \“:\”orange \“},{\”time \“:1384842808185,\”text \“:\”WinForm再次发送!!! \“, \“作者\”:\“WinForm Say Hello!\”,\“color \”:\“red \”},{\“time \”:1384843229766,\“text \”:\“我很好\” ,“作者”:“你是谁”,“颜色”:\“red \”}]}“
    4. 所有3种Json格式都可以使用JsonProperty创建3个不同的类来映射它们。 我可以用前几个字符验证字符串。 还有其他解决方案吗?

      我发现以下解决方案可以提供帮助。

      1. 使用JsonCreationConverter。 How to implement custom JsonConverter in JSON.NET to deserialize a List of base class objects?

      2. 将JavaScriptSerializer与动态类型一起使用 Parse json string using JSON.NET

        var jss = new JavaScriptSerializer();
        dynamic data = jss.Deserialize<dynamic>(e.Message.ToString());
        
      3. 使用动态类型的JObject.Parse Deserialize json object into dynamic object using Json.net

1 个答案:

答案 0 :(得分:0)

序列化数据是字符串,所以它只是一个字符串。正如您所说,您想要识别JSON格式。所以,更好的是首先转换为JSON&amp;然后识别JSON数据类型,并根据类型调用处理该数据的过程或方法。