serialization - 反序列化和序列化,保留java转义的表情
问题描述
这是用于处理 facebook webhook。
一个事件字符串像这样到达
{"object":"page","entry":[{"id":"222222222","time":1536713510549,"messaging":[{"sender":{"id":"1111111111"}," recipient":{"id":"355433484576638"},"timestamp":1536713509901,"message":{"mid":"VnOoUhb2FUTyfnkXtmKgqDCfJlgJPB_n1gj-8aC6ka4-Oo2GjMXS82vHH9ChydJrPX_5Zu3sJ6skCv8JToF1IA","seq":206765," text":"Jeg m\ u00e5 裸 si at jeg elsker Obosbladet!St\u00e5 p\u00e5 视频!\ud83d\ude00\ud83d\ude2c\ud83d\ude01\ud83d\ude02\ud83d\ude03\ud83d\ude04" }}]}]}
这是使用反序列化的
Dim TestObj As RealTimeEvent = JsonConvert.DeserializeObject(Of RealTimeEvent)(eventStr)
此时,如果我在调试器中查看 TestObj 消息,我会看到
“Jeg må bare si at jeg elsker Obosbladet!Stå på videre!”
注意瑞典字符已经被正确处理了,但是java转义的表情不是。(\ud83d\ude00\ud83d\ude2c\ud83d\ude01\ud83d\ude02\ud83d\ude03\ud83d\ude04)
如果我然后尝试反序列化对象
JsonConvert.SerializeObject(TestObj )
我明白了
VnOoUhb2FUTyfnkXtmKgqDCfJlgJPB_n1gj-8aC6ka4-Oo2GjMXS82vHH9ChydJrPX_5Zu3sJ6skCv8JToF1IA"",""seq"":""206765"",""text"": ""Jeg må bare si at jeg elsker Obosbladet!Stå på videre!"" ,""附件"":null}}]}]}
瑞典字符被转换..这是我想要的,但我没有机会处理表情符号
无论如何,我是否保留了 Newtonsoft De 序列化过程不理解的所有内容,但保留了瑞典语和其他字符的转换?
---编辑---添加我想要实现的解释---我需要能够访问表情符号的原始定义.."\ud83d\ude00\ud83d\ude2c\ud83d\ude01\ud83d\ude02 \ud83d\ude03\ud83d\ude04" 我正在集成到另一个根本无法处理表情符号的系统。我编写了一个“翻译器”,它将解析消息文本以查找 java 转义数据。我采用整个表情符号定义(所有对)并减少直到找到匹配的定义。也许有一种方法可以告诉序列化程序不要转换任何转义值并保持消息文本“原始”?(我尝试了各种 JsonSerializerSettings 但没有找到)
解决方案
推荐阅读
- admob - 刷新原生广告
- python - Pytorch:AttributeError:'function'对象没有属性'cuda'
- javascript - 从外部应用程序重定向到 Angular 内部路由
- apache - 本地主机不显示传入的 https
- android - 为什么 StartActivity(intent) 失败了?logcat 显示 W/ActivityThread:handleWindowVisibility:令牌 android.os.BinderProxy@ 没有活动
- python - 更改周期数时“元组索引超出范围”
- azure - 使用图形 api 获取特定应用程序的 azure 广告用户列表
- asciidoctor - 删除 asciidoctor 词干块中的高行距
- c# - 复制 ReadOnlySequence 的更好方法
到一个结构 - angular - 有没有办法通过使用 rxjs 运算符重试来获取角度的 HTTP 状态代码?