我知道这是一个常见的问题,但我找不到与我的上下文相关的信息。首先,我使用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};