取消序列化和序列化,保留Java转义的表情符号

时间:2018-09-12 02:08:12

标签: serialization json.net deserialization

这是用于处理facebook webhooks。

这样的事件字符串到达​​

{“ object”:“ page”,“ entry”:[{“ id”:“ 222222222”,“ time”:1536713510549,“ messaging”:[{sender“:{” id“:” 1111111111“ },“收件人”:{“ id”:“ 355433484576638”},“时间戳”:1536713509901,“消息”:{“ mid”:“ VnOoUhb2FUTyfnkXtmKgqDCfJlgJPB_n1gj-8aC6ka4-Oo2GjMXS82vHH9C,X” J“” J“ “:”“在jeg elsker Obosbladet上的Jeg m \ u00e5裸女!St \ u00e5 p \ u00e5 videre!\ ud83d \ ude00 \ ud83d \ ude2c \ ud83d \ ude01 \ ud83d \ ude02 \ ud83d \ ude83d \ ude03 \ ud83d \ ude04” }}]}]}

使用来反序列化

Dim TestObj As RealTimeEvent  = JsonConvert.DeserializeObject(Of RealTimeEvent)(eventStr)

这时,如果我在调试器中查看TestObj消息,就会看到

“杰格·斯凯(Jeg elsker Obosbladet)的杰格·莫斯!

请注意,瑞典语字符已正确处理,但Java转义的表情符号却未正确处理。(\ ud83d \ ude00 \ ud83d \ ude2c \ ud83d \ ude01 \ ud83d \ ude02 \ ud02d

如果我然后尝试反序列化对象

JsonConvert.SerializeObject(TestObj )

我明白了

{“” RawEvent“”:“”“”,“”对象“”:“”页面“”,“条目”“ :: [{”“ id”“:”“ 355433484576638”“,”“时间“”:“” 1536713510549“”,“” changes“”:null,“” messaging“” :: [{“” optin“”:null,“” read“”:null,“” postback“”:null,“ “ sender”“:{”“ id”“:”“ 975511412531391”“},”“收件人”“:{” id“”:“” 355433484576638“”},“”时间戳“”:“” 1536713509901“” ,“” message“”:{“” mid“”:“” VnOoUhb2FUTyfnkXtmKgqDCfJlgJPB_n1gj-8aC6ka4-Oo2GjMXS82vHH9ChydJrPX_5Zu3sJ6skCv8JToF1IA“”,“”,“”,“杰格·埃尔斯·奥伯斯布莱德(Jeg elsker Obosbladet)视频! “” ,“附件”“:null}}]}]}

瑞典语字符已转换。这是我想要的,但是我没有机会处理图释

无论如何,我是否保留了Newtonsoft De序列化过程无法理解的所有内容,但仍保留瑞典语和其他字符的转换?

---编辑-添加我要达到的目的的说明--- 我需要能够访问图释的原始定义。.“ \ ud83d \ ude00 \ ud83d \ ude2c \ ud83d \ ude01 \ ud83d \ ude02 \ ud83d \ ude03 \ ud83d \ ude04” 我正在集成到另一个根本无法处理图释的系统。我写了一个“翻译器”,它将解析消息文本以查找Java转义的数据。我采用整个表情符号定义(所有对)并减少直到找到匹配的定义。 也许有一种方法告诉串行器不要转换任何转义的值并使消息文本保持“原始”状态? (我已经尝试过各种JsonSerializerSettings,但没有找到任何东西)

0 个答案:

没有答案