Java MongoDB : Convert JSON data to DBObject

MongoDB comes with “com.mongodb.util.JSON” class to convert JSON data directly to a DBObject. For example, data represent in JSON format :

{
	'name' : 'mkyong',
	'age' : 30
}

To convert it to DBObject, you can code like this :

DBObject dbObject = (DBObject) JSON.parse("{'name':'mkyong', 'age':30}");
Example

See a full example to convert above JSON data to a DBObject, and save it into MongoDB.

package com.mkyong.core;
 
import java.net.UnknownHostException;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.mongodb.util.JSON;
 
/**
 * Java MongoDB : Convert JSON data to DBObject
 * 
 */
 
public class App {
	public static void main(String[] args) {
 
		try {
 
			Mongo mongo = new Mongo("localhost", 27017);
			DB db = mongo.getDB("yourdb");
			DBCollection collection = db.getCollection("dummyColl");
 
			// convert JSON to DBObject directly
			DBObject dbObject = (DBObject) JSON
					.parse("{'name':'mkyong', 'age':30}");
 
			collection.insert(dbObject);
 
			DBCursor cursorDoc = collection.find();
			while (cursorDoc.hasNext()) {
				System.out.println(cursorDoc.next());
			}
 
			System.out.println("Done");
 
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (MongoException e) {
			e.printStackTrace();
		}
	}
}

Output

{ "_id" : { "$oid" : "4dc9ebb5237f275c2fe4959f"} , "name" : "mkyong" , "age" : 30}
Done
Tags :

About the Author

mkyong
Founder of Mkyong.com and HostingCompass.com, love Java and open source stuff. Follow him on Twitter, or befriend him on Facebook or Google Plus. If you like my tutorials, consider make a donation to these charities.

Comments

  • Pingback: water ionizer loan()

  • Pingback: parking()

  • Pingback: alkaline water benefits()

  • Pingback: stop parking()

  • Pingback: laan penge nu og her 18 aar()

  • Pingback: youporn()

  • Pingback: lan hurtige penge nu()

  • Pingback: DirectTV()

  • Pingback: tvpackages.net()

  • Pingback: Screwing the hottys buddy()

  • Pingback: Blue Coaster33()

  • [email protected]

    I have a question, please reply.
    Thanks in advance.

    While parsing the the JSON like in
    DBObject dbObject = (DBObject)JSON.parse(“{name:’mkyong’, age:30}”);

    We are just simply giving the string directly. I mean we are hard coding the input text.

    I am trying to parameterize this thing, and I cannot get how to store a string variable instead of hardcoding it directly.

    For Example,
    my String is ;
    String myString = “Hello World”;
    I wish to store this myString instead of hardcoding the “Hello World” value directly..

    Can you please help me?

    Thank you.

    • Thamizharasu

      Hi,
      You have to pass the string which has the value and construct the JSON string using StringBuilder. Then pass the JSON string the method. It will work.

      Thanks,
      Tham

  • Leonardo Pinto

    The snippet

    {
        "_id" : { "$oid" , "4dc9ebb5237f275c2fe4959f"}
    }

    saved my day! (im using NoSQLUnit for integration tests)

    thx a lot!

    • mandarabnave

      I have a question, please reply.
      Thanks in advance.

      While parsing the the JSON like in
      DBObject dbObject = (DBObject)JSON.parse(“{name:’mkyong’, age:30}”);

      We are just simply giving the string directly. I mean we are hard coding the input text.

      I am trying to parameterize this thing, and I cannot get how to store a string variable instead of hardcoding it directly.

      For Example,
      my String is ;
      String myString = “Hello World”;
      I wish to store this myString instead of hardcoding the “Hello World” value directly..

      Can you please help me?

      Thank you.

  • Ajith

    Nice article !!
    When I try importing a date using the above function

    {
    	'name' : 'mkyong',
    	'age' : 30,
            'DOB' : 2000-12-12
    }

    The datatype by default is taken as string. How do I import dates directly from JSON ?

    Any idea ?

    Regds
    AN

  • http://www.mkyong.com armen

    Hello. I have following method, I want find by id from table and get Book object

    public Book getBookObject(Long bookId)
    {
    Book book = new Book();

    BasicDBObject query = new BasicDBObject();

    query.put(“bookId”, bookId);

    DBCursor cursor = bookCollection.find(query);

    try {
    while(cursor.hasNext()) {
    System.out.println(cursor.next());
    }
    } finally {
    cursor.close(); }

    return book;
    }

    How can I assign cursor.next() result to my Book object?
    @Model
    public class Book
    {

    private Long bookId;
    @Size(min = 1, max = 20)
    private String name;
    @Size(min = 1, max = 20)
    private String author;
    @Size(min = 1, max = 20)
    private String language;
    private int year;
    ///
    After fin I get JSON object
    INFO: { “_id” : { “$oid” : “50125127478556057fb20600″} , “bookId” : 18 , “name” : “Java one” , “year” : 11969 , “language” : “255” , “author” : “5858”} and so? I need show it in the web page and update the document. Help

  • Martina

    How can I convert from DBobject back to a java Object? With MappingMongoConverter? I can’t figure out the MappingContext argument to construct that converter.

  • http://msangel.org.ua msangel

    Can I save not strict JSON as Object in this DB?
    For example:

    DBObject dbObject = (DBObject)JSON.parse("{name:'mkyong', age:30}");

    This code cause exception, but if to work with another tool for mongo – DB allow to save this objects.
    Why java api not allow this and how can i solse this problem?