拆分JSON字符串时出现问题



我知道这是一个常见的问题,但我找不到与我的上下文相关的信息。首先,我使用Gson:从来自不同类的JSon对象构建一个String

String myString= gson.toJson(obj);
String mystring1=gson.toJson(obj1);

然后我正在构建一个字符串,我想对其进行反序列化,我使用:

String serializedString=myString.concat("|" +mystring1);

我使用|是因为它不包含在任何json对象中,我想我会的。然后我可以很容易地获得一个字符串数组:String[]arrayOfJsonStrings=serializedString.split("|"(;gson.fromJson(arrayOfJsonStrings[0],obj.class(;….

问题是String[]arrayOfJsonStrings=serializedString.split("|"(;正在返回空字符串,为什么?有没有简单的方法可以做到这一点?

首先,您可以用两种不同的方式连接字符串。下面的其中一个会更好、更一致。

String serializedString=myString+"|"+mystring1;

String serializedString=myString.concat("|").concat(myString1);

String serializedString=String.format("%s|%s", myString, myString1)

您的问题实际上是在regex保留字符上进行拆分。您需要使用此处提到的来逃避拆分

serializedString.split("\|");

但我真的不明白你为什么要这么做?为什么不在数组中初始化那些字符串值呢?

String myString= gson.toJson(obj);
String mystring1=gson.toJson(obj1);
String[] arrayOfJsonStrings = new String[]{myString, myString1};

最新更新