使用预字符串化的JSON片段
Making use of pre-stringified JSON pieces
假设我已经有一个JSON字符串;也许我是从服务器那里得到的。
data = '{"a": 1, "b": 2}'
我想使用postMessage
或其他需要JSON字符串的API,并以
{ action: 'save', data }
当然可以
postMessage(JSON.stringify({ action: 'save', data: JSON.parse(data) });
,但这最终会生成数据,然后立即将其作为字符串化对象的一部分发送给postMessage
。
是否有任何干净的方法来利用我已经拥有要发送的部分数据的字符串化版本的事实?我很担心这一点,因为实际上数据的长度可能是100K或更多,解析它和字符串化它不是免费的。
注意:我知道我可以发送JSON字符串的数据,并有接收端解析它,但我不能改变接收端的语义。
注2:当然我也可以用各种方式自己构建JSON,比如'{ "action": "save", "data": ' + data + '}'
您可以尝试这样做:
var data = {
"a":"test1",
"b":"test2",
"c":{
"c1":"test3.1",
"c2":"test3.2"
}
}
var object = {};
object["action"] = "save";
object["data"] = data;
console.log(object);
我也问过自己同样的问题。对此有不同的解决方案。我设置了一个小小的jsperf测试。
最有希望的方法(如果你不需要嵌套的东西)是删除结束并添加字符串化的json:
var stringifiedObject = JSON.stringify({
some: 'random',
obj: 'propterties'
});
var res = JSON.stringify({
outer: 'object'
});
res = res.substring(0, res.length-1) + ', "alreadyString":' + stringifiedObject + '}';
相关文章:
- jQuery匹配JSON对象的部分文本
- 在循环中分配json值时,值被覆盖
- 需要帮助设置json数组
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 使用JQuery解析JSON嵌套数组
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 如何使用json将对象列表从java转换为javascript
- 如何使用 node.js 比较两个 json 数组
- 如何将JSON数据导入我的ejs模板
- 区分JSON中的矩阵和列表列表
- 不显示带有本地json文件数据的谷歌地图脚本
- 访问通过Ajax服务的HTML片段中返回的JSON
- Javascript -使用HTML片段通过电子邮件发送JSON输出
- 使用预字符串化的JSON片段
- 获取JSON并处理JSON中的单个信息片段
- 如何在 Django 中使用 json 添加 html 片段
- 将JSON响应返回的HTML片段插入到DOM中