我有一个对象的字符串数组,我将其从javascript作为单个字符串提取到java中。它看起来像这样.
[
{"sourcevalue":"KRISHNA@IN.IBM.COM","userIdValue":"Krishna L Pappu -
krishnalakshmi","objectId":"A1001001A20E08A74322C03420"},
{"sourcevalue":"KRISHNA@IN.IBM.COM","userIdValue":"Krishna L Pappu -
krishnalakshmi","objectId":"A1001001A20E08A74322C03420"},
{"sourcevalue":"KRISHNA@IN.IBM.COM","userIdValue":"Krishna L Pappu -
krishnalakshmi","objectId":"A1001001A20E08A74322C03420"}
]
现在我想知道如何在简单的java中将其拆分为如下对象:
{"sourcevalue":"KRISHNA@IN.IBM.COM","userIdValue":"Krishna L Pappu - krishnalakshmi","objectId":"A1001001A20E08A74322C03420"}
{"sourcevalue":"KRISHNA@IN.IBM.COM","userIdValue":"Krishna L Pappu - krishnalakshmi","objectId":"A1001001A20E08A74322C03420"}
{"sourcevalue":"KRISHNA@IN.IBM.COM","userIdValue":"Krishna L Pappu - krishnalakshmi","objectId":"A1001001A20E08A74322C03420"}
我尝试了split
方法,它太笨拙了。提前致谢
正如@Rabbit
所说,创建一个反序列化程序。有很多方法可以做到这一点,示例可以是:
class SimpleObj {
private String sourceValue;
private String userIdValue;
private String objectId;
... getters, and setters ommited
public static List<SimpleObj> deserializer(String data){
Type objType = new TypeToken<ArrayList<SimpleObj>>() {}.getType();
return new ArrayList<>(new Gson().fromJson(data, objType));
}
}
接受字符串的方法deserializer
需要Gson()
库才能工作,因此将其导入到您的classpath
,该方法将帮助您将传入字符串更改为对象列表,就像您想要的那样。
我希望这是有帮助的。
我使用这段代码来实现我从Javascript获得的反序列化json对象列表的要求。希望这有助于反序列化从前端检索的对象列表的要求。
@SuppressWarnings("unchecked")
public static AttributeValue[] jsonToObject (String jsonObj, Class gilClass) {
Gson gson = new Gson();
return gson.fromJson(jsonObj, AttributeValue[].class);
}