一尘不染

以编程方式合并两个JSON对象

json

我这里有两个通过Google搜索API生成的JSON对象。这些对象的URL可以在下面找到。

http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=hello%20world&rsz=large

http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q =
hello%20world&rsz = large&start =
8

如您所见,第一个URL返回前八个结果,而第二个URL返回后八个结果。与其单独检查这些结果,我不希望以 编程方式
将它们合并到一个JSON对象中,并将其作为前16个结果传递。

我已经尝试了几个非常简单的JSON对象,但是Google返回的内容仍然有点过头,因此我希望在做这种事情时能有所帮助。

据我所知,将两个对象合并为一个对象并不违反Google的《服务条款》,只是这些对象始终作为两个结果(它们将会)通过。一些朋友向我指出了能够执行此类操作的自动化工具的方向,但是我还没有找到这样的工具。

我目前在ASP.NET中工作,因此C#或VB.NET代码很棒,但是我在某种程度上与语言无关,因此,非常感谢您使用任何语言提供的帮助。

任何人都可以在做这种事情上提供任何帮助和/或建议吗?

编辑: 这些结果最终将保存到数据库中,因此任何服务器端方法都将是很棒的,即使这意味着将它们直接放入表中以便以后处理也是如此。


阅读 259

收藏
2020-07-27

共1个答案

一尘不染

function MergeJSON (o, ob) {
      for (var z in ob) {
           o[z] = ob[z];
      }
      return o;
}

这看起来很像Elliot的代码,但是在某些情况下更安全。当与Extjs或jQuery之类的框架一起使用时,它没有向对象添加函数,这可能会导致一些语法问题。我遇到的问题是,在事件侦听器中使用它时,语法上会出现问题。但是功劳归功于Elliot,他做到了。

使用此方法如下:

a = {a : 1}
b = {b : 2}
c = {c : 3}

x = MergeJSON ( a, b);
x = MergeJSON ( x, c);

result : x  == {a : 1, b : 2, c : 3}

谢谢你艾略特

2020-07-27