首页 > 解决方案 > 如何在java中拆分javascript返回的String对象

问题描述

我有一个对象的字符串数组,我从 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一种方法,它太笨拙了。提前致谢

标签: javaparsingsplit

解决方案


如前所述@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,该方法将帮助您将传入的字符串更改为对象列表,就像您想要的那样。

我希望这是有帮助的。


推荐阅读