javascript - Node.js - 无法使用 Fermata REST 客户端将嵌套/转义的 JSON 发布到正文

标签 javascript json node.js

问题可能出在实际的客户端上,但他没有在 github 上回复,所以我会尝试一下!

我正在尝试在正文中发布嵌套 JSON:

{
   "rowkeys":[
      {
         "rowkey":"rk",
         "columns":[
            {
               "columnname":"cn",
               "columnvalue":"{\"date\":\"2011-06-21T00:53:10.309Z\",\"disk0\":{\"kbt\":31.55,\"tps\":6,\"mbs\":0.17},\"cpu\":{\"us\":5,\"sy\":4,\"id\":90},\"load_average\":{\"m1\":0.85,\"m5\":0.86,\"m15\":0.78}}",
               "ttl":10000
            },
            {
               "columnname":"cn",
               "columnvalue":"cv",
               "ttl":10000
            }
         ]
      },
      {
         "rowkey":"rk",
         "columns":[
            {
               "columnname":"cn",
               "columnvalue":"fd"
            },
            {
               "columnname":"cn",
               "columnvalue":"cv"
            }
         ]
      }
   ]
}

当我删除列值的 json 字符串时,POST 起作用。也许我在逃跑方面缺少什么?我尝试了一些内置的转义实用程序,但没有成功。

var jsonString='the json string above here';

var sys = require('sys'),
      rest = require('fermata'), // https://github.com/andyet/fermata
         stack = require('long-stack-traces');

        var token = ''; // Username
        var accountId = ''; // Password

        var api = rest.api({
             url : 'http://url/v0.1/',
             user : token,
             password : accountId
        });

        var postParams = {
             body: jsonString
        };

        (api(postParams)).post(function (error, result) {
               if (error)
                    sys.puts(error);    

           sys.puts(result);
        });

我发布的 API 无法反序列化它。

{
   "rowkeys":[
      {
         "rowkey":"rk",
         "columns":[
            {
               "columnname":"cn",
               "columnvalue":{
                  "date":"2011-06-21T00:53:10.309Z",
                  "disk0":{
                     "kbt":31.55,
                     "tps":6,
                     "mbs":0.17
                  },
                  "cpu":{
                     "us":5,
                     "sy":4,
                     "id":90
                  },
                  "load_average":{
                     "m1":0.85,
                     "m5":0.86,
                     "m15":0.78
                  }
               },
               "ttl":10000
            },
            {
               "columnname":"cn",
               "columnvalue":"cv",
               "ttl":10000
            }
         ]
      },
      {
         "rowkey":"rk",
         "columns":[
            {
               "columnname":"cn",
               "columnvalue":"fd"
            },
            {
               "columnname":"cn",
               "columnvalue":"cv"
            }
         ]
      }
   ]
}

最佳答案

同时发生的双重问题使我发现处理大型 JSON 帖子的 fermata 库存在问题。上面的 JSON 就可以了!

关于javascript - Node.js - 无法使用 Fermata REST 客户端将嵌套/转义的 JSON 发布到正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6429360/

相关文章:

javascript - 从https请求中获取响应数据时如何修复未定义的数据?

javascript - 如何从多个模式中收集数据? - 境界

javascript - 阻止 Javascript 舍入大数字 ID

javascript - 以类似同步的方式重写异步dygraphs JS?

javascript - Angular 路由不起作用

javascript - 有选择地展平嵌套 JSON 结构

sql - 改进 SQL Server 查询以将任意表转换为 JSON

javascript - 如何使用for循环在javascript中编写和调用函数?

ajax - 用于管理 session 并使用 JSON 响应 ajax 请求的 Delphi 服务器端框架?

node.js - nodejs 错误 : module. js:340 抛出错误;