java JSON स्ट्रिंग से बीएसओएन ऑब्जेक्ट बनाना




mongodb bson (8)

स्ट्रिंग जेसन को बीएसओ में कनवर्ट करने के लिए, करें:

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

एक बासन को जेसन में बदलने के लिए, करें:

import org.bson.BasicBSONDecoder;
import org.bson.BSONObject;

BasicBSONDecoder decoder = new BasicBSONDecoder();
BSONObject bsonObject = decoder.readObject(out);
String json_string = bsonObject.toString();

मेरे पास जावा ऐप है जो बाहरी ऐप से डेटा लेता है। आने वाले जेएसओएन स्ट्रिंग्स में हैं। मैं स्ट्रिंग्स को पार्स करना और बीएसओएन ऑब्जेक्ट्स बनाना चाहता हूं।

दुर्भाग्यपूर्ण मैं जावा के बीएसओएन कार्यान्वयन में इसके लिए एपीआई नहीं ढूंढ सकता।

क्या मैंने जीएसओएन की तरह बाहरी पार्सर का उपयोग किया है?


मुझे जावा के बारे में निश्चित नहीं है लेकिन mongoDB CPP ड्राइवर के पास फ़ंक्शन प्रकार है

बीएसओएनओबीजे सेजसन (स्ट्रिंग)

जो पारित स्ट्रिंग के अनुसार एक बीएसओएनओबीजे देता है। जावा में भी एक ही कार्य होना चाहिए।


... और, 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);

आधिकारिक दस्तावेज़:


आधिकारिक मोंगोडीबी जावा चालक जेएसओएन को बीएसओएन को पार्स करने और जेएसओएन को बीएसओएन को क्रमबद्ध करने के लिए उपयोगिता विधियों के साथ आता है।

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/


आपको bson4jackson प्रोजेक्ट में दिलचस्पी हो सकती है, जो आपको बीएसओएन के साथ काम करने के लिए जैक्सन डेटा बाइंडिंग का उपयोग करने की अनुमति देता है (बीएसओएन से पीओजेओ बनाएं, बीएसओएन के रूप में लिखें) - खासकर जब जैक्सन जेएसओएन के साथ भी काम करता है। तो यह आपके जैसे रूपांतरण की अनुमति देगा, बस विभिन्न ऑब्जेक्टमैपर इंस्टेंसस्टेस का उपयोग करें (जो JSON के साथ काम करता है, अन्य बीएसओएन के साथ काम करता है)।

जैक्सन के साथ आप या तो पूर्ण पीओजेओ (अपनी इच्छित संरचना घोषित करें) या सरल मानचित्र, सूचियों आदि के साथ काम कर सकते हैं। आपको केवल डेटा को पढ़ने के दौरान बाध्य करने के लिए टाइप करने की आवश्यकता है (लिखते समय, टाइप आपके द्वारा पारित वस्तु द्वारा परिभाषित किया जाता है)।


मैं BasicDBObject के toJson () और पार्स (स्ट्रिंग) विधियों का उपयोग करने का सुझाव दूंगा, क्योंकि 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();
}

org.bson.Document से Document.parse(String json) org.bson.Document Document.parse(String json) उपयोग करें। यह Document ऑब्जेक्ट देता है जो कि Bson का प्रकार है।


JSON स्ट्रिंग को Map में पार्स करने के लिए JSON लाइब्रेरी का उपयोग करने का सबसे आसान तरीका प्रतीत होता है और फिर उन मानों को BSONObject में रखने के लिए putAll विधि का उपयोग करें।

यह उत्तर दिखाता है कि Map में JSON स्ट्रिंग को पार्स करने के लिए Jackson का उपयोग कैसे करें।





bson