Как я могу использовать заменить в JSON? - PullRequest
0 голосов
/ 17 февраля 2020

Эй,

У меня есть 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 или как мне выделить список?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Вы используете маленький 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();
0 голосов
/ 18 февраля 2020

при условии, что вы получаете это 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();
}

В качестве альтернативы, если вы этого не сделаете Если у вас есть конечная точка, вы можете вручную преобразовать строку JSON в POJO и наоборот, используя ObjectMapper Java. Например:

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

Я также предполагаю, что вам нужен список Java, а массив JSON не нужен просто как строка.

...