Json反对键值对

时间:2014-05-27 22:16:16

标签: javascript

我想转换

var connection = {
   someName:'someValue'
}

data:{'connection.someName':'someValue'}

我该怎么做?

详细说明;

我有

var data ={connection : {name : 'SomeName', url:'SomeUrl'}}

我发布

$.ajax({
  type : 'POST'
  data : data
  ....
})

我的后端需要表单数据,如

connection.name='SomeName'
connection.url='SomeUrl'

所以它可以将连接数据绑定到Connection bean

感谢。

1 个答案:

答案 0 :(得分:0)

虽然您正在寻找的结果是技术上有效的JSON,但这不会按预期进行解析:

var x = JSON.parse("{\"data.someName\":\"someValue\"}");
x.data.someName;
// Error: x.data is undefined

这是因为解析器将整个文字视为单个键,因此您必须像这样访问该值:

var x = JSON.parse("{\"data.someName\":\"someValue\"}");
x["data.someName"]
// "someValue"

为了符合要求,你真正想要的是,可解析的JSON是这样的:

{"data":{"someName":"someValue"}}

解析器会适当地对待它:

var x = JSON.parse("{\"data\":{\"someName\":\"someValue\"}}");
x.data.someName;
// "someValue";