只将json中的一些值替换为json
replace only some value from json to json
以下是示例:
我有这个jsonA
{ "a":"1", "b":"2", "c":{"a":"1", "b":"2"} }
这个jsonB
{ "b":"2new", "c":{"a":"1new"} }
我想用jsonB中的新值更新第一个jsonA,最后得到这样的结果:
{ "a":"1", "b":"2new", "c":{"a":"1new", "b":"2"} }
我可以手动设置每个值,比如:
jsonA.b = jsonB.b;
jsonA.c.a = jsonB.c.a;
有一种方法可以自动完成,而无需使用forEach检查每个valule?
因为您没有指定语言标记,所以我继续在c++中实现了它。
这是主程序:
int main()
{
auto jsonA = JSON::parse("{ '"a'":'"1'", '"b'":'"2'", '"c'":{'"a'":'"1'", '"b'":'"2'"} }");
auto jsonB = JSON::parse("{ '"b'":42, '"c'":{'"a'":'"1new'"}, '"q'":[3.14,null] }");
if (boost::apply_visitor(make_love(), jsonA, jsonB))
std::cout << "Merged: " << jsonA;
else
std::cerr << "Couldn't merge '" << jsonA << "' with '" << jsonB << "''n";
}
输出:
Merged: {"a":"1","b":42,"c":{"a":"1new","b":"2"},"q":[3.14,null]}
当然,这就引出了make_love
是如何实现的问题:
struct make_love : boost::static_visitor<bool>
{
bool operator()(Object& a, Object const& b) const {
for(auto el: b.values)
recurse(a[el.first], el.second);
return true;
}
template<typename T, typename U> bool operator()(T& a, U const& b) const
{ return false; }
private:
void recurse(Value& a, Value const& b) const {
if (!boost::apply_visitor(*this, a, b))
a = b;
}
};
上下文中的完整代码(JSON.hp/JSON.cpp):https://github.com/sehe/spirit-v2-json/blob/q17711850/test.cpp
我刚刚写了这个:
jsonA = { "a":"1", "b":"2", "c":{"a":"1", "b":"2"} }
jsonB = { "b":"2new", "c":{"a":"1new"} }
for (var j in jsonA) {
if(jsonB.hasOwnProperty(j)) {
if (typeof jsonA[j] === 'object') {
for (var i in jsonA[j]) {
if(jsonB[j].hasOwnProperty(i)) {
jsonA[j][i] = jsonB[j][i];
}
}
} else {
jsonA[j] = jsonB[j];
}
}
}
点击此处查看:http://jsfiddle.net/YtgQS/
相关文章:
- Javascript JSON对象替换对象中的字符串
- 使用捕获组查找和替换json字符串中出现的所有短语
- 替换 JSON 中的字符串
- 如何使用替换器 param json.stringify 访问嵌套对象
- 替换json文件中文本中的值
- 用来自JSON对象的占位符值替换字符串
- 我想使用replace函数扫描json对象,然后用字符串替换匹配的单词
- 如何在谷歌可视化api柱状图中使用的json对象内用数字替换字符串值
- 替换JSON对象中的值
- 是否有任何功能可以合并两个JSON数据集并替换旧信息?(节点.JS)
- 在使用Protractor进行测试时,我可以用json文件替换结果,而不是调用实际的REST端点
- 用Javascript替换从JSON中获取的数组数据特殊字符
- 使用JSON.stringify()包括所有对象属性's替换器阵列
- 替换JSON中的键:值对
- 无法读取属性'替换'json中未定义的
- 如何使用 Angular.js/javascript 将 JSON 数组值替换为新值
- 如何将 JSON 字符串中的文本替换为 Greasemonkey 的用户脚本
- 使用 javascript 更新后替换 JSON 对象
- Jquery,JSON:替换JSON数组的部分
- AngularJS/Javascript-如何用JSON替换整个对象