c# - C#将字节数组转换为jsonstring返回字符串
问题描述
所以我使用 Java 和 C# 应用程序将字节数组发送到 web 服务。使用 java 发送字节数组有效,但使用 c# 则无效,因为当我将 c# 字节数组转换为 json 字符串时,字节数组是一个字符串。
{"fileId":0,"fileName":"PrivateFile.java","fileContent":"LyoNCiAqIFRvIGNoYW5nZSB0aGlzI......."}
如您所见,字节数组中有""
引号。这意味着当我尝试再次转换对象中的 jsonstring 时,它将无法正常工作,因为 web 服务会尝试将字符串转换为字节数组:java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 58 path $.fileContent
使用 gson 将字节数组转换为 java 中的 jsonstring 如下所示:
{"fileId":0,"fileName":"Database.java","fileContent":[47,42,13,10,32,42,32,84,111,32,99,104,97,110,103,101,32,116,104,105,115,32,108,105,99,101,110,115,101,32,104,101,97,100,101,114,44,32,99,104,111,111,115,101,32,76,105,99,101,110]}
如您所见,语法是正确的,因为""
字节数组之间没有。所以我能够再次将其转换为字节数组。
这是我在 C# 中将字节数组转换为 jsonString 的方法:
PublicFile p = new PublicFile();
p.fileId = 0;
p.fileName = tokens[cnt - 1];
p.fileContent = File.ReadAllBytes(myFilePath);
var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(p);
如何在 c# 中正确地将字节数组序列化为 json 字符串?
解决方案
推荐阅读
- python - 用seaborn制作的解包情节
- c# - 整数范围
- c++ - 在用 C++ 编写 txt 文件时无法过滤掉字符串向量
- python - 将两个python脚本合二为一
- flutter - [Flutter]:在 SelectFormField 包中搜索不起作用
- c# - 没有这样的表错误或文件不是数据库
- java - Rabbit MQ + Spring Boot:重新发送损坏消息之间的延迟
- docker - 自动化 docker swarm 配置轮换
- html - 如何将值从 HTML 发送到另一个 HTML 文档并重定向到它?
- javascript - Django Javascript 附加选项