【问题标题】:How can i use replace in JSON?如何在 JSON 中使用替换?
【发布时间】:2020-02-17 20:38:01
【问题描述】:

嘿嘿,

我有一个 JSON 字符串,即

{"userId":"WaNenOnQt","photos":[{"photo_url":"vendor_photos/WaNenOnQt/web_(138)(4thcopy).JPG","index":1},{"photo_url":"vendor_photos/WaNenOnQt/54230451_265006064447640_7942942433146217157_n.jpg","index":2}]}

我只想要列表数据,即 -

[{"photo_url":"vendor_photos/WaNenOnQt/web_(138)(4thcopy).JPG","index":1},{"photo_url":"vendor_photos/WaNenOnQt/54230451_265006064447640_7942942433146217157_n.jpg","index":2}]

java 中是否有任何替换功能,或者我如何分隔列表?

【问题讨论】:

  • 只是...不要试图通过字符串解析复杂的对象。使用适当的 JSON 解析器,例如 Google 的 GSON 或类似的东西

标签: java json parsing string-parsing jsonparser


【解决方案1】:

假设您通过要公开的端点获取该 JSON,您应该将其绑定到方法签名,例如,如果您使用的是 Spring:


public class MyPojo {
    private String userId;
    private List<Photo> photoList;
    //getters & setters
}

Photo class

public class Photo {
    @JsonProperty("photo_url")
    private String url;
    private int index;
    //getters & setters
}

Controller class

@RequestMapping(value = "/test", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Object> test(@RequestBody MyPojo request) {
    List<Photo> photos = request.getPhotoList();
}

或者,如果您没有端点,您可以使用 Java 的 ObjectMapper 手动将 JSON 字符串转换为 POJO,反之亦然。例如:

public void transform(String jsonString) throws... {
    ObjectMapper mapper = new ObjectMapper();
    MyPojo pojo = mapper.readValue(jsonString, MyPojo.class);
    List<Photo> photo = pojo.getPhotoList();
}

我还假设您需要一个 Java 列表,并且不需要将 JSON 数组简单地作为字符串。

【讨论】:

    【解决方案2】:

    你使用小型json

    String jsonstring = "{\"userId\":\"WaNenOnQt\",\"photos\":[{\"photo_url\":\"vendor_photos/WaNenOnQt/web_(138)(4thcopy).JPG\",\"index\":1},{\"photo_url\":\"vendor_photos/WaNenOnQt/54230451_265006064447640_7942942433146217157_n.jpg\",\"index\":2}]}";
    JsonValue json = JsonParser.parse(jsonstring);
    JsonValue photos = json.asObject().first("photos");
    String result = photos.toCompactString();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-11
      • 2013-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-25
      相关资源
      最近更新 更多