2

次のようにUIからデータを取得しています。以下の入力データはすべて文字列です。

cust_id:temp001 cust_chart_id:テストdefault_chart:false chart_pref_json:{range:6m、chart_type:candlestick、indicators:{}、period:Daily、futurepadding:20}}

chart_pref_jsonをmongodbに保存しようとしています。このchart_pref_jsonオブジェクトは、実際には以下の文字列としてdbに保存されます。

{ "_id" : ObjectId("50aca4caf5d0b0e4d31ef239"), "cust_id" : "temp001", "cust_chart_id" : "testing", "default_chart" : "false", "created_at" : NumberLong("1353491658551"), **"chart_pref_json" : "{range:6m,chart_type:candlestick,indicators:{},period:Daily,futurepadding:20}" }**

しかし、私は実際にこのchart_pref_jsonを以下のようにjsonオブジェクトとして保存したいと思っています。

{ "_id" : ObjectId("50aca4caf5d0b0e4d31ef239"), "cust_id" : "temp001", "cust_chart_id" : "testing", "default_chart" : "false", "created_at" : NumberLong("1353491658551"), **"chart_pref_json" : {range:6m,chart_type:candlestick,indicators:{},period:Daily,futurepadding:20} }**

誰かがこの問題について私を助けることができますか?

4

3 に答える 3

2

JSONコードを文字列として使用する場合は、最初にJSONコードを解析してから、結果のJSONオブジェクトをBSONオブジェクトに変換する必要があります。

MongoDBに付属しているcom.mongodb.util.JSONクラスを使用できます。これがチュートリアルです。

于 2012-11-22T10:24:38.970 に答える
1

これはJavaの質問なので、MongoDBJavaドライバーを使用してJSONを挿入する方法は次のとおりです。

import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;

public class Main {
    public static void main(String[] args) {
        MongoClientURI uri = new MongoClientURI("mongodb://myuser:mypsw@localhost:27017/mydb");
        MongoClient client = new MongoClient(uri);
        MongoDatabase db = client.getDatabase("mydb");
        String json =
                "{\n" +
                "    \"_id\" : \"MyId\",\n" +
                "    \"foo\" : \"bar\"\n" +
                "}";
        db.getCollection("mycoll").insertOne(Document.parse(json));
    }
}
于 2019-07-03T09:36:21.450 に答える
0

アプリケーションでフィールドとして設定する前に、言語のJSONデコード機能を使用してオブジェクトとしてエンコードする必要があります。PHPでは、次のようにします。

$db->collection->insert( array(
    'cust_id' => 'temp001',
    … your other fields …
    'chart_pref' => json_decode( $varContainingJson )
) );

Javaの場合、次の例が役立ちます。

BasicDBObject obj = JSON.parse( varContainingJson ); 

これはhttps://groups.google.com/forum/?fromgroups=#!topic/mongodb-user/Y3KyG_ZSfJgで説明されています

于 2012-11-22T10:21:07.617 に答える