- Пример программы Chat Room, созданной с помощью NodeJs.
- Сервер Node.js ответит на 3 разных формата Json.
- Я создал программу Winform для приема Json из Websocket.
- Я использую Json.NET JsonMessage jsonResponse = JsonConvert.DeserializeObject (e.Message.ToString ()); десериализовать один формат Node.js
- Как определить другой формат Json при сериализации?
три типа формата Json
цвет: "{\" тип \ ": \" цвет \ ", \" данные \ ": \" синий \ "}"
message: "{\" тип \ ": \" сообщение \ ", \" действие \ ": \" Изменить цвет \ "}»
- история: "{\" тип \ ": \" история \ ", \" данные \ ": [{\" время \ ": 1384825833181, \" текст \ ": \" это тест \ ", \" автор \ ": \" Том \ ", \" цвет \ ": \" зеленый \ "}, {\" время \ ": 1384842730192, \" текст \ ": \" Отправка WinForm \ ", \" автор \ ": \ "WinForm Say Hello! \", \ "Color \": \ "orange \"}, {\ "time \": 1384842808185, \ "text \": \ "WinForm Send Again !!! \", \ "автор \ ": \" WinForm Say Hello! \ ", \" Color \ ": \" red \ "}, {\" time \ ": 1384843229766, \" text \ ": \" Я в порядке \ ", \" автор \ ": \" кто ты \ ", \" цвет \ ": \" красный \ "}]}"
Все 3 формата Json могут создавать 3 разных класса с JsonProperty для их сопоставления. Я могу проверить строку с первыми несколькими символами. Есть ли другие решения?
Я обнаружил, что следующее решение может помочь.
Используйте JsonCreationConverter. Как реализовать пользовательский JsonConverter в JSON.NET для десериализации списка объектов базового класса?
Используйте JavaScriptSerializer с динамическим типом Анализируйте строку json с помощью JSON.NET
var jss = new JavaScriptSerializer(); dynamic data = jss.Deserialize<dynamic>(e.Message.ToString());
Используйте JObject.Parse с динамическим типом Десериализуйте объект json в динамический объект, используя Json.net