在适配器过程中访问json文档键(IBM worklight)

时间:2014-06-10 10:26:53

标签: ibm-mobilefirst worklight-adapters jsonstore

我有一个通过适配器链接到远程sql数据库的本地jsonstore。我试图将本地数据推送到远程数据库,如下所示:

submit_data = function () {

    accessor.getPushRequired().then(function (result) { alert(result.length);

        accessor.push();

    });

我们说我只添加了文件(没有替换/删除)。 我希望我的添加过程看起来像这样:

function addGegegr(document) {

    //WL.Logger.warn(document[56]);
    return WL.Server.invokeSQLStoredProcedure({
        procedure : "DBO.USP_TIM_add_sp",
            parameters : [document.key1,document.key2,document.key3,...]
    });
}

对于替换/删除过程,它们应该使用相同的参数调用其他存储过程。

然而,我收到错误,因为它似乎是变量" document"在调用push之后,worklight传递给add函数只是一个字符串而不是一个json对象。

所以我的问题是:如何从适配器程序访问json属性?如果不可能,我可以将这些属性传递给推送功能吗?

P.S。:将每个n个文件作为push()的参数添加不起作用,导致add被称为n * n次而不是n ...

1 个答案:

答案 0 :(得分:0)

尝试使用JSON.parse将字符串转换为JavaScript对象。

function addGegegr(document) {
  var doc = JSON.parse(document);
  //... use doc as a regular JavaScript object
}

如果JSON.parse在那里不可用,您可以通过在适配器实现文件中包含this code来添加它。