我如何在JSON中使用replace?

问题描述 投票:0回答:2

嘿,我有一个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中是否有任何replace函数,或者如何分隔列表?

java json parsing string-parsing jsonparser
2个回答
0
投票

假设您正在通过公开的端点获取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数组简单地当作字符串。


0
投票

您可以使用小型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();
© www.soinside.com 2019 - 2024. All rights reserved.