Sample OJAI Code for Creating JSON Documents
The sample code in this section shows you how to create a JSON document.
The code is available at OJAI_001_GetConnectionCreateDocument.java.
/** * Copyright (c) 2017 MapR, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.mapr.ojai.examples; import org.ojai.Document; import org.ojai.json.JsonOptions; import org.ojai.store.Connection; import org.ojai.store.DriverManager; import com.mapr.ojai.examples.data.Dataset; import com.mapr.ojai.examples.data.User; public class OJAI_001_GetConnectionCreateDocument { public static void main(String[] args) { System.out.println("==== Start Application ==="); // Create an OJAI connection to MapR cluster final Connection connection = DriverManager.getConnection("ojai:mapr:"); for (final User someUser : Dataset.users) { // Create an OJAI Document form the Java bean (there are other ways too) final Document userDocument = connection.newDocument(someUser); // Print the OJAI Document System.out.println( userDocument.asJsonString( // serialize the OJAI Document to JSON string new JsonOptions().pretty() // in pretty format )); } // close the OJAI connection and release any resources held by the connection connection.close(); System.out.println("==== End Application ==="); } }
The code is available at OJAI_001_GetConnectionCreateDocument.js.
/* * Copyright (c) 2018 MapR, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ const { ConnectionManager } = require('node-maprdb'); const connectionString = 'localhost:5678?' + 'auth=basic;' + 'user=mapr;' + 'password=mapr;' + 'ssl=true;' + 'sslCA=/opt/mapr/conf/ssl_truststore.pem;' + 'sslTargetNameOverride=node1.mapr.com'; // Create a connection to data access server ConnectionManager.getConnection(connectionString) .then((connection) => { // create new document as a JavaScript object const newDocument = { "_id": "id001", "name": "Joe", "age": 50, "address": { "street": "555 Moon Way", "city": "Gotham" } }; // Print the OJAI Document console.log(JSON.stringify(newDocument)); // close the OJAI connection and release any resources held by the connection connection.close(); });
The code is available at 001_get_connection_create_document.py.
from mapr.ojai.storage.ConnectionFactory import ConnectionFactory # Create a connection to data access server connection_str = "localhost:5678?auth=basic;user=mapr;password=mapr;" \ "ssl=true;" \ "sslCA=/opt/mapr/conf/ssl_truststore.pem;" \ "sslTargetNameOverride=node1.mapr.com" connection = ConnectionFactory.get_connection(connection_str=connection_str) # Json string or json dictionary json_dict = {"_id": "id001", "name": "Joe", "age": 50, "address": { "street": "555 Moon Way", "city": "Gotham"} } # Create new document from json_document new_document = connection.new_document(dictionary=json_dict) # Print the OJAI Document print(new_document.as_json_str()) # close the OJAI connection connection.close()
The code is available at 001_GetConnectionCreateDocument.cs.
using System; using MapRDB.Driver; public class GetConnectionCreateDocument { public void GetConnectionCreateDocument() { // Create a connection to data access server var connectionStr = $"localhost:5678?auth=basic;" + $"user=mapr;" + $"password=mapr;" + $"ssl=true;" + $"sslCA=/opt/mapr/conf/ssl_truststore.pem;" + $"sslTargetNameOverride=node1.mapr.com"; var connection = ConnectionFactory.CreateConnection(connectionStr); // Json string var jsonStr = @"{" + @"""_id"":""id001""," + @"""name"":""Joe""," + @"""age"":{""$numberInt"":""50""}," + @"""address"":" + @"{" + @"""street"":""555 Moon Way""," + @"""city"":""Gotham""" + @"}" + @"}"; // Create a document from jsonStr var documentJson = connection.NewDocument(jsonStr); // Print the OJAI Document Console.WriteLine(documentJson.ToJsonString()); // Create new document with the same fields using constructor var documentConstructed = connection.NewDocument() .SetID("id001") .Set("name", "Joe") .Set("age", 50) .Set("address.street", "555 Moon Way") .Set("address.city", "Gotham"); // Print the OJAI Document Console.WriteLine(documentConstructed.ToJsonString()); // Close the OJAI connection connection.Close(); } }
The code is available at 001_get_connection_create_document.go.
package main import ( "fmt" client "github.com/mapr/private-maprdb-go-client" ) func main() { // Create connection string connectionString := "192.168.33.11:5678?" + "auth=basic;" + "user=mapr;" + "password=mapr;" + "ssl=true;" + "sslCA=/opt/mapr/conf/ssl_truststore.pem;" + "sslTargetNameOverride=node1.cluster.com" // Create a connection to data access server connection, err := client.MakeConnection(connectionString) if err != nil { panic(err) } // Json string or map from which the Document will be created newMap := map[string]interface{}{ "_id": "id001", "name": "Joe", "age": 50, "address": map[string]interface{}{ "street": "555 Moon Way", "city": "Gotham", }, } // Create new document from json_document newDocument := connection.CreateDocumentFromMap(newMap) // Print the new OJAI Document fmt.Println(newDocument.AsJsonString()) // Close connection connection.Close() }