JSON 当表情符号在数据中时,字符串被截断

JSON String gets cutoff When emoji is in data

我有一个 VB.Net Web 服务,其中 return 的数据是一个 JSON 字符串。 returned 的某些数据可能包含 EMOJI。当我 return 没有 EMOJI 的数据时,数据恢复正常。

像这样-

[
  {
    "ImgID": "150",
    "ImgDesc": "Added to your portfolio",
    "PublicID": "c0lbquvzitd3igohfh7x",
    "ImgURL": "test.com",
    "LikeCount": "0",
    "CommentCnt": "2",
    "PickCount": "",
    "ServerUpdateDate": "1\/17\/2016 3:13:21 PM",
    "UserName": "Deathstarspa",
    "ProfileImgID": "hqhoiohfckzldgpdem6k",
    "Location": "Chester County, PA, USA",
    "dltflg": "False",
    "PortName": "2 0 1 6 | M E N S",
    "Categories": "Blowouts"
  },
  {
    "ImgID": "151",
    "ImgDesc": "Stone cold",
    "PublicID": "udecff1bi0ymhewp1qlv",
    "ImgURL": "Test.com",
    "LikeCount": "0",
    "CommentCnt": "0",
    "PickCount": "",
    "ServerUpdateDate": "1\/17\/2016 3:17:26 PM",
    "UserName": "Deathstarspa",
    "ProfileImgID": "hqhoiohfckzldgpdem6k",
    "Location": "Chester County, PA, USA",
    "dltflg": "False",
    "PortName": "2 0 1 6 | M E N S",
    "Categories": "Test"
  }
]

如果数据在字符串中的任何位置都有表情符号,则字符串会在最后被截断。

表情符号在数据中的位置并不重要。

赞-

[
  {
    "ImgID": "161",
    "ImgDesc": "Bed ?????",
    "PublicID": "gnw6ooo04ls21kqq8doo",
    "ImgURL": "test.com",
    "LikeCount": "0",
    "CommentCnt": "0",
    "PickCount": "",
    "ServerUpdateDate": "2\/11\/2016 8:18:03 PM",
    "UserName": "Deathstarspa",
    "ProfileImgID": "hqhoiohfckzldgpdem6k",
    "Location": "Chester County, PA, USA",
    "dltflg": "False",
    "PortName": "Bed Pics",
    "Categories": "Blowouts,Treatments"
  },
  {
    "ImgID": "162",
    "ImgDesc": "Bed ?????",
    "PublicID": "lrdxpvwxoq5zxpkagamo",
    "ImgURL": "test.com",
    "LikeCount": "0",
    "CommentCnt": "0",
    "PickCount": "",
    "ServerUpdateDate": "2\/11\/2016 8:18:05 PM",
    "UserName": "Deathstarspa",
    "ProfileImgID": "hqhoiohfckzldgpdem6k",
    "Location": "Chester County, PA, USA",
    "dltflg": "False",
    "PortName": "Test Pics"

虽然您在 ImgDesc 片段中看不到表情符号,但 ????? 表示表情符号。所以 ImgID 161 的记录是完整的,但是 162ImgID 的记录在 "Test Pics," 处被截断。如果我从 ImgDesc 中删除表情符号,那么数据就会恢复正常。

我正在使用 VB.NET 并且我引用了 Newtonsoft.Json dll

我需要做些什么才能使 表情符号 不会引起问题吗?

您需要根据 JSON 标准对表情符号进行正确编码。请参阅下面的相关答案:

how can I Deserialize emoji in json in C#