首页 > 解决方案 > 如何在反应原生 sqlite 存储中存储 json 对象?

问题描述

我是反应原生的新手。将 json 数据存储到数据库表中时遇到问题。我试图将 json 对象存储到表中,但出现错误。

这是我的json数据:

let formData = {"inspection":{
    "date":"23-11-2018",
    "client name" :"John Doe",
    "locations":[
        {
            "location_id":"23",
            "scoreSheets":[
              {
               "name":"EHA",
               "categories":[
                  {
                    "id":"1",
                    "observations":[
                        {
                         "option_id":"56",
                         "option":"lorem ipsum dolor",
                         "marks":"2"
                        }
                    ],
                   "violations":[
                       {
                         "option_id":"59",
                         "option_4":"this is label of option 4",
                         "marks":"-2",
                         "correctiveActions":[
                            {
                              "comment":"lorem ipsum",
                              "image":"errror1.jpg"
                            },
                            {
                              "comment":"dolor set amet",
                              "image":"errror2.jpg"
                            }
                         ]
                       }
                   ],
                   "subscore":"4"
                  }
                ],
              "foodInspections":[
                {
                  "collection_site":"3",
                  "hazardousItems":"4",
                  "non-compliant_food":"lorem ipsum",
                  "potential_cause":"lorem ipsum"
                }
              ],
              "refrigerations":[
                 {
                   "unit_identification":"lskdre",
                   "unit temprature":"34"
                 }
              ],
          "totalScore":"75"
            }
        ]

        }
    ],
    "finalScore":"100"
}}; 

这是我的代码:

db = SQLite.openDatabase(database_name, database_version, database_displayname, database_size, this.openCB, this.errorCB);
 db.transaction((tx) => {
    tx.executeSql('CREATE TABLE IF NOT EXISTS Inspections( '
     + 'id INTEGER PRIMARY KEY NOT NULL, '
     + 'inspector_id INTEGER NOT NULL, '
     + 'inspection_data TEXT ); ', [], this.successCB, this.errorCB);

     tx.executeSql('INSERT INTO Inspections (inspector_id, inspection_data) VALUES ('+decoded.uid+','+formData+');', []);

});

我想在检查表中插入 json 数据。我还使用了 json.strigify() 函数,但没有得到任何解决方案。

标签: jsonsqlitereact-nativestorage

解决方案


尝试这个:

 db = SQLite.openDatabase(database_name, database_version, database_displayname, database_size, this.openCB, this.errorCB);
 db.transaction((tx) => {
    tx.executeSql('CREATE TABLE IF NOT EXISTS Inspections( '
     + 'id INTEGER PRIMARY KEY NOT NULL, '
     + 'inspector_id INTEGER NOT NULL, '
     + 'inspection_data TEXT ); ', [], this.successCB, this.errorCB);

     tx.executeSql('INSERT INTO Inspections (inspector_id, inspection_data) VALUES (?,?);', [decoded.uid,formData]);
});

推荐阅读