복붙노트

[MONGODB] JSON 문자열에서 생성 BSON 객체

MONGODB

JSON 문자열에서 생성 BSON 객체

나는 외부 응용 프로그램에서 데이터를 가져와 자바 응용 프로그램을 가지고있다. 수신 JSONs는 문자열에 있습니다. 나는 그 문자열을 구문 분석하고 BSON 객체를 생성하고 싶습니다.

불운 나는 자바의 BSON 구현에 그것을위한 API를 찾을 수 없습니다.

나는 GSON 같은 그 외부 파서를 사용합니까?

해결법

  1. ==============================

    1.가장 쉬운 방법은지도에 JSON 문자열을 구문 분석 할 JSON 라이브러리를 사용 후 BSONObject에 그 값을 넣어 putAll에 방법을 사용하는 것 같다.

    가장 쉬운 방법은지도에 JSON 문자열을 구문 분석 할 JSON 라이브러리를 사용 후 BSONObject에 그 값을 넣어 putAll에 방법을 사용하는 것 같다.

    이 답변 쇼는 어떻게지도로 JSON 문자열을 구문 분석 잭슨을 사용할 수 있습니다.

  2. ==============================

    2.공식 MongoDB의 자바 드라이버 BSON에 JSON을 구문 분석하고 JSON에 BSON를 직렬화하는 유틸리티 메소드와 함께 제공됩니다.

    공식 MongoDB의 자바 드라이버 BSON에 JSON을 구문 분석하고 JSON에 BSON를 직렬화하는 유틸리티 메소드와 함께 제공됩니다.

    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/

  3. ==============================

    3.... 그리고, 3.0.0 이후, 당신은 할 수 있습니다 :

    ... 그리고, 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);
    

    공식 문서 :

  4. ==============================

    4.bson에 문자열 JSON 변환하려면, 수행

    bson에 문자열 JSON 변환하려면, 수행

    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);
    

    JSON에 bson을 변환하려면 수행

    import org.bson.BasicBSONDecoder;
    import org.bson.BSONObject;
    
    BasicBSONDecoder decoder = new BasicBSONDecoder();
    BSONObject bsonObject = decoder.readObject(out);
    String json_string = bsonObject.toString();
    
  5. ==============================

    5.org.bson.Document에서 사용 Document.parse (문자열 JSON). 그것은 Bson의 유형 문서 객체를 반환합니다.

    org.bson.Document에서 사용 Document.parse (문자열 JSON). 그것은 Bson의 유형 문서 객체를 반환합니다.

  6. ==============================

    6.특히 JSON과 잭슨 일 이후 - 당신은 당신이 (BSON로 쓰기 BSON에서 POJO를 작성) BSON으로 작업에 바인딩 잭슨 데이터를 사용할 수 있습니다 bson4jackson 프로젝트에 관심이있을 수 있습니다. 당신이 언급처럼이 변환을 할 수 있도록, 단지 (BSON 다른 JSON와 함께 작동 한) 다른 ObjectMapper의 instanstaces를 사용합니다.

    특히 JSON과 잭슨 일 이후 - 당신은 당신이 (BSON로 쓰기 BSON에서 POJO를 작성) BSON으로 작업에 바인딩 잭슨 데이터를 사용할 수 있습니다 bson4jackson 프로젝트에 관심이있을 수 있습니다. 당신이 언급처럼이 변환을 할 수 있도록, 단지 (BSON 다른 JSON와 함께 작동 한) 다른 ObjectMapper의 instanstaces를 사용합니다.

    잭슨과 함께 할 수 있습니다 등등 전체 POJO를 (당신이 원하는 선언 구조) 또는 간단한지도와, 목록과와 중 작동합니다. (쓸 때, 형은 당신이 통과 객체에 의해 정의 된) 데이터를 읽을 때 당신은 단지에 바인드에 입력 할 것을 선언해야합니다.

  7. ==============================

    7.당신은 https://github.com/mongodb/mongo/blob/master/src/mongo/db/jsobj.cpp의 소스 코드에 질문에 대한 답을 찾을 수 있습니다 어떤 JSON 변환에 BSON있다.

    당신은 https://github.com/mongodb/mongo/blob/master/src/mongo/db/jsobj.cpp의 소스 코드에 질문에 대한 답을 찾을 수 있습니다 어떤 JSON 변환에 BSON있다.

    기본적으로, 같은 물건

    등등...

  8. ==============================

    8.JSON 유틸리티 클래스가 @Depricated 되었기 때문에 나는 toJson ()와 BasicDBObject의 구문 분석 (문자열) 방법을 사용하는 것이 좋습니다 것입니다.

    JSON 유틸리티 클래스가 @Depricated 되었기 때문에 나는 toJson ()와 BasicDBObject의 구문 분석 (문자열) 방법을 사용하는 것이 좋습니다 것입니다.

    import com.mongodb.BasicDBObject;
    
    public static BasicDBObject makeBsonObject(String json) {
        return BasicDBObject.parse(json);
    }
    
    public static String makeJsonObject(BasicDBObject dbObj) {
        return dbObj.toJson();
    }
    
  9. ==============================

    9.나는 자바에 대해 확실하지 오전하지만 MongoDB의 CPP 드라이버는 기능 유형이

    나는 자바에 대해 확실하지 오전하지만 MongoDB의 CPP 드라이버는 기능 유형이

    이는 전달 된 문자열에 따라 BSONObj을 반환합니다. 너무 자바에서 동일한 기능이 있어야한다.

  10. from https://stackoverflow.com/questions/3117167/creating-bson-object-from-json-string by cc-by-sa and MIT license