cuốn sách gpt4 ai đã làm

Viết danh sách Java vào mảng JSON thông qua Jackson

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 08:35:48 26 4
mua khóa gpt4 Nike

Tôi đang sử dụng Jackson để tuần tự hóa JSON. Tôi đang cố chuyển đổi danh sách Java (chứa các giá trị chuỗi) thành mảng JSON. Tôi đã thử các phương pháp sau (các vấn đề được đưa ra bên dưới cho mỗi phương pháp)

1. Viết các phần tử mảng bằng cách sử dụng writeString của JsonGenerator

trình tạo JsonGenerator cuối cùng = Factory.createGenerator(output, JsonEncoding.UTF8);
Generator.writeStartArray();
for (Chuỗi đối số: argsList) {
Generator.writeStartObject();
log.info("giá trị arg là {}", arg);
Generator.writeString(arg);
Generator.writeEndObject();
}
Generator.writeEndArray();

bất thường

Không thể viết chuỗi, tên trường mong đợi (ngữ cảnh: Đối tượng)

Tôi nhận được ngoại lệ từ "generator.writeString(arg)". Tôi không thể sử dụng writeStringField.

người lập bản đồ đối tượng

Người lập bản đồ ObjectMapper = new ObjectMapper();
mapper.writeValue(out, argsList);
byte cuối cùng[] argsBytes = out.toByteArray();
Generator.writeFieldName("args");
Generator.writeObjectField("args", argsBytes)

Điều này tạo ra mảng dưới dạng một chuỗi chứ không phải một mảng trong đối tượng JSON (đó là điều tôi muốn đạt được). Mọi đề xuất đều được chào đón.

Trạng thái kết thúc (đã cố gắng đạt được):

{
"args":["abc","def","ghi","jkl","mno"]
}

câu trả lời hay nhất

Bằng cách bắt đầu/kết thúc một đối tượng xung quanh mỗi mục nhập mảng, những gì bạn đang làm là cố gắng vô hiệu hóa json:

{
"args":[{"abc"},{"def"},{"ghi"},{"jkl"},{"mno"}]
}

Trình tạo ngăn cản bạn thực hiện việc này một cách chính xác.

Chỉ cần viết chuỗi trực tiếp vào mảng:

trình tạo JsonGenerator cuối cùng = Factory.createGenerator(output, JsonEncoding.UTF8);
Generator.writeStartArray();
for (Chuỗi đối số: argsList) {
Generator.writeString(arg);
}
Generator.writeEndArray();

Về java - Viết danh sách Java vào mảng JSON thông qua Jackson, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/42864560/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress