JSON 문자열에서 BSON 개체를 만드는 중
외부 앱에서 데이터를 가져오는 자바 앱이 있습니다.착신 JSON은 Strings에 있습니다.그 Strings를 해석하여 BSON 오브젝트를 만들고 싶습니다.
유감스럽게도 Java의 BSON 구현에서는 API를 찾을 수 없습니다.
GSON과 같은 외부 파서를 사용해야 하나요?
또, 3.0.0 이후에서는, 다음의 조작이 가능하게 됩니다.
import org.bson.Document;
final Document doc = new Document("myKey", "myValue");
final String jsonString = doc.toJson();
final Document doc = Document.parse(jsonString);
공식 문서:
공식 MongoDB Java Driver에는 JSON을 BSON으로 해석하고 BSON을 JSON으로 시리얼화하기 위한 유틸리티 방법이 포함되어 있습니다.
import com.mongodb.DBObject;
import com.mongodb.util.JSON;
DBObject dbObj = ... ;
String json = JSON.serialize( dbObj );
DBObject bson = ( DBObject ) JSON.parse( json );
드라이버는, https://mongodb.github.io/mongo-java-driver/ 를 참조해 주세요.
사용하다Document.parse(String json)
부터org.bson.Document
. 다시 돌아오다Document
유형인 물체Bson
.
가장 쉬운 방법은 JSON 라이브러리를 사용하여 JSON 문자열을 해석하여Map
그런 다음 이러한 값을 1개의 코드에 삽입하는 방법을 사용합니다.BSONObject
.
이 답변은 Jackson을 사용하여 JSON 문자열을 해석하는 방법을 보여 줍니다.Map
.
문자열 json을 bson으로 변환하려면 다음 작업을 수행합니다.
import org.bson.BasicBSONEncoder;
import org.bson.BSONObject;
BSONObject bson = (BSONObject)com.mongodb.util.JSON.parse(string_json);
BasicBSONEncoder encoder = new BasicBSONEncoder();
byte[] bson_byte = encoder.encode(bson);
bson을 json으로 변환하려면 다음 작업을 수행합니다.
import org.bson.BasicBSONDecoder;
import org.bson.BSONObject;
BasicBSONDecoder decoder = new BasicBSONDecoder();
BSONObject bsonObject = decoder.readObject(out);
String json_string = bsonObject.toString();
잭슨 데이터 바인딩을 사용하여 BSON(BSON에서 POJO를 만들고 BSON으로 쓰기)과 작업할 수 있는 bson4jackson 프로젝트에 관심이 있을 수 있습니다.특히 잭슨도 JSON과 함께 작업하기 때문입니다.따라서 말씀하신 대로 변환할 수 있습니다.다른 ObjectMapper instance(JSON에서 동작하는 인스턴스, BSON에서 동작하는 인스턴스)를 사용하면 됩니다.
Jackson을 사용하면 전체 POJO(원하는 선언 구조) 또는 간단한 지도, 목록 등을 사용할 수 있습니다.데이터를 읽을 때 바인딩할 대상을 선언하기만 하면 됩니다(쓰기할 때 유형은 전달한 개체에 의해 정의됩니다).
질문에 대한 답변은 BSON에서 JSON으로 변환된 https://github.com/mongodb/mongo/blob/master/src/mongo/db/jsobj.cpp의 소스 코드를 참조하십시오.
기본적으로는...
ObjectId("XXX")
->{ "$oid" : "XXX" }
/XXX/gi
->{ "$regex" : "XXX", "$options" : "gi" }
기타 등등...
Basic DBObject의 toJson() 메서드와 parse(String) 메서드를 사용하는 것이 좋습니다.JSON 유틸리티 클래스는 @Depricated이기 때문입니다.
import com.mongodb.BasicDBObject;
public static BasicDBObject makeBsonObject(String json) {
return BasicDBObject.parse(json);
}
public static String makeJsonObject(BasicDBObject dbObj) {
return dbObj.toJson();
}
java는 잘 모르겠지만 mongoDB CPP 드라이버는 함수 타입이 있습니다.
BSONObj fromjjson(문자열)
전달된 문자열에 따라 BSONObj를 반환합니다.자바에서도 같은 기능이 있을 겁니다.
언급URL : https://stackoverflow.com/questions/3117167/creating-bson-object-from-json-string
'it-source' 카테고리의 다른 글
AngularJs 앱을 작성할 때 Jade 또는 핸들 바를 사용하는 이유는 무엇입니까? (0) | 2023.04.01 |
---|---|
이네이블화 방법자동구성 스프링 주석 작업? (0) | 2023.04.01 |
WordPress 사용자 지정 게시물 목록을 표시하려면 어떻게 해야 합니까? (0) | 2023.04.01 |
JS를 테스트하기 위해 레일 각도 프로젝트를 설정하려면 어떻게 해야 합니까? (0) | 2023.04.01 |
React 컴포넌트에서 프로펠러 업데이트를 테스트하는 방법 (0) | 2023.04.01 |