我在两个应用程序之间发送数据时遇到问题。我使用以下代码将数据序列化为C#中的JSON:
public static string SerializeToJson<T>(this T obj)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
MemoryStream ms = new MemoryStream();
serializer.WriteObject(ms, obj);
byte[] array = ms.ToArray();
return Encoding.UTF8.GetString(array, 0, array.Length);
}
然后我使用套接字通信将此消息发送到在TypeScript中实现的第二个应用程序。我使用以下方法反序列化它:
JSON.parse
函数,并且工作正常,但是如果数据中的特殊字符(例如8211'–')会抛出异常
SyntaxError: Unexpected token in JSON at position 907
可能是序列化和反序列化使用不同编码的问题,但是我不知道JSON.parse中使用哪种编码。
有人可以帮助我吗?
我使用将字符串转换为base64来解决此问题,然后在第二个应用程序中对其进行解码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句