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

MongoDB: Tất cả các đường dẫn lá đầy đủ

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 10:54:35 26 4
mua khóa gpt4 Nike

Đưa ra một tài liệu, tôi muốn nhận danh sách tất cả các đường dẫn đầy đủ trong Java, chỉ dành cho các lá.

Ví dụ: có tài liệu này:

{MỘT : {
B : {
Đ: "đ"
}
C : {
E: "e",
F: "f"
}
}

Tôi muốn có được cái nàyDanh sách :

"ABD",
"ACE",
"ACF"

Có chức năng nào trong thư viện "mongodb" để thực hiện việc này không? Làm cách nào tôi có thể viết thủ công mà không cần sử dụng đệ quy?

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

Tôi đã tìm ra giải pháp.

tôi sử dụng Gson Chức năng mạnh mẽ của thư viện sẽ Tài liệu 转换为 json, sau đó sử dụng com.google.gson.stream.JsonReader Đọc nó.

Mã có thể tốt hơn nếu nó hiệu quả hơn, nhưng đối với nhu cầu của tôi, mã này vẫn ổn và tôi chỉ phải đọc rất ít tài liệu.

public static List leafPaths(Tài liệu tài liệu) {
Chuỗi json = gson.toJson(tài liệu);
List leafPaths = new ArrayList<>();
thử (JsonReader reader = new JsonReader(new StringReader(json))) {
//scorro tutti gli elemento dello json
while (true) {
Mã thông báo JsonToken = reader.peek();
chuyển đổi (mã thông báo) {
trường hợp BEGIN_ARRAY:
reader.beginArray();
phá vỡ;
trường hợp END_ARRAY:
reader.endArray();
phá vỡ;
trường hợp BEGIN_OBJECT:
reader.beginObject();
phá vỡ;
trường hợp END_OBJECT:
reader.endObject();
phá vỡ;
trường hợp TÊN:
reader.nextName();
phá vỡ;
trường hợp STRING:
reader.nextString();
leafPaths.add(reader.getPath());
phá vỡ;
SỐ trường hợp:
reader.nextDouble();
leafPaths.add(reader.getPath());
phá vỡ;
trường hợp BOOLEAN:
reader.nextBoolean();
leafPaths.add(reader.getPath());
phá vỡ;
trường hợp KHÔNG:
reader.nextNull();
phá vỡ;
trường hợp END_DOCUMENT:
// tutti i campi
return leafPaths.stream().map(field -> field.substring(2)).collect(toList());
default:
phá vỡ;
}
}

} catch (Exception e) {
trả về các láPath;
}
}

Về java - MongoDB: Tất cả các đường dẫn lá đầy đủ, 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/47440072/

26 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
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