将来自url的json数据存储到cordova中的数据库中

时间:2016-06-16 07:32:43

标签: javascript android angularjs sqlite cordova

我想将json数据存储到cordova中的数据库中。我使用角度js来检索json数据。我的一个json数据是一个字符串格式的图像源(base 64)。请帮我将数据存储到cordova DB

我的json看起来像: {" PlayList":[{" videoId":" bMvZymcZAFE"," playlistTitle":" UAE Exchange India Briefing" ," playlistId":" PLPQxCdv2_-qjo0yucR6FmKzC-DqvFx83L"," videoTitle":" UAE Exchange India庆祝客户忠诚度月"," ; videoPosition":" 1"" IMGSRC":" / 9J / 4AAQSkZJRgABAQAAAQABAAD / 2wCEAAUDBAkICAgICQkGCAgHCAcHCAcHCAgHBwcHBwgHBwcIBwcHChALBwgOCQcHDRUNDhER"}]," ERRORMSG":& #34; SUCCESS"" errorFlag":" S"

脚本:

                  <script>
                    var app = angular.module('myApp', []);
                         app.controller('customersCtrl', function($scope, $http) {
                       $http.get("http://www.uaeexchangeindia.com/wp-content/themes/uaexindia/youtube-links-rand-mobapp.php?playlistId=PLPQxCdv2_-qjo0yucR6FmKzC-DqvFx83L&limit=0")
                       .then(function (response) {

                             $scope.names = response.data.PlayList;});
                       });

2 个答案:

答案 0 :(得分:1)

Cordova主要以3种方式支持存储 - 本地存储,websql和indexDB。

我建议使用pouchDB,这将负责存储在可用的数据库中,并且您可以以相同的json格式存储数据。 PouchDB

或者

你可以继续使用sqlite插件。当您在应用中使用角度时,建议使用ng-cordova。 Link to ng-cordova plugin for sqlite

答案 1 :(得分:0)

最后我找到了我的解决方案..!  这是代码

      var obj = $.parseJSON(data);
      $.each(obj.PlayList, function (index, i) 
  {
          var videoId = i.videoId;
          var imgSrc = i.imgSrc
      save(videoId,imgSrc );
       });
     },
         error:function()
         {
           alert("error");
          $(".load_div").hide();
                }
            });


    function save(videoId,imgSrc){

     var today = new Date();
     var dd = today.getDate();
     var mm = today.getMonth()+1; //January is 0!
     var yyyy = today.getFullYear();

      if(dd<10) {
          dd='0'+dd
              }

     if(mm<10) {
           mm='0'+mm
              }

      today = mm+'/'+dd+'/'+yyyy;

var myDB = window.openDatabase(&#34; Database&#34;,&#34; 1.0&#34;,&#34; Cordova Demo&#34;,10485760);

             myDB.transaction(function(transaction) {

             transaction.executeSql('CREATE TABLE IF NOT EXISTS YOUTUBE_VIDEO (id primary key, videoID text, imgSRc varchar)', [],
                function(tx, result) {

                                     },
                function(error) {
               alert("Error occurred while creating the table.");
               });
                 });


                 myDB.transaction(function(transaction) {
                 var executeQuery = "INSERT INTO YOUTUBE_VIDEO (videoID,imgSRc) VALUES (?,?)";
                 transaction.executeSql(executeQuery, [videoId,imgSrc]
                 , function(tx, result) {

                 var newImage = document.createElement('img');
                 newImage.src = "data:image/png;base64,"+imgSrc;
                 document.getElementById("img").innerHTML = newImage.outerHTML;


                 },
                 function(error){
                 alert('Error occurred');
                 });
                 });
                 myDB.transaction(function(transaction) {
                 transaction.executeSql('SELECT * FROM YOUTUBE_VIDEO WHERE id = ?', [1], function (tx, results) {

                 }, null);
                 });

}