我有一个用 Java 编写的类和用 C# 编写的同一个类。我将 C# 类序列化为 json 字符串,并尝试在 Java 端反序列化它。在我为这两个类都添加了一个 byte[] 字段之前,一切都很顺利。以下是类定义: C#:
public class RegisterRequest : GenericRequest
{
public string name { set; get; }
public string sex { set; get; }
public string birthday { set; get; }
public string from { set; get; }
public string about { set; get; }
public byte[] image { set; get; }
}
爪哇:
public class RegisterRequest extends GenericRequest{
private String name;
private String sex;
private String birthday;
private String from;
private String about;
private String pictureUrl;
private byte[] image;
}
C#端的序列化使用:request.ToJson()
(Json.NET),Java反序列化使用:(RegisterRequest rr = gsonObject.fromJson(msg, RegisterRequest.class);
使用Gson。msg是json字符串)
当我不在字节数组中发送任何内容时,它仍然有效。但是,当我填充数组时,Java 端出现异常:com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 159089
我猜需要有一些东西来标记 Gson 识别但 Json.NET 不添加到字符串的数组的开头?