首页 > 解决方案 > 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 字符串?

标签: c#arraysjsonserialization

解决方案


推荐阅读