Объедините два объекта JSON программно

Это является немного косвенным, но это работает очень приятно. Получите LiveWriter и установите этот плагин:

http://lvildosola.blogspot.com/2007/02/code-snippet-plugin-for-windows-live.html

Вводит Ваш код с помощью плагина в сообщение в блоге. Выберите все и скопируйте его в Word.

Это выглядит большим и может включать номера строки. Это также охватывает страницы прилично.

Colby Africa HTH

6
задан Mike B 29 July 2009 в 09:29
поделиться

6 ответов

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

Это очень похоже на код из Elliot, но в некоторых условиях немного безопаснее. Он не добавляет функцию к объекту, что может привести к некоторым синтаксическим проблемам при использовании с такими фреймворками, как Extjs или jQuery. У меня была проблема с синтаксисом при использовании в слушателе событий. Но кредиты достались Эллиоту, он справился с задачей.

Используйте это следующим образом:

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}

Спасибо Эллиот

11
ответ дан 8 December 2019 в 12:22
поделиться

Кроме того, если вы действительно хотите обрабатывать результаты на стороне сервера, эта статья , кажется, дает довольно разумное пошаговое руководство по процессу.

1
ответ дан 8 December 2019 в 12:22
поделиться

Если вы предпочитаете решение на стороне клиента (на самом деле JavaScript), как насчет того, чтобы попробовать функцию «объединить», которую я написал : http://code.google.com/p/av-jslib/source/browse/js/aV.ext.object.js#36

1
ответ дан 8 December 2019 в 12:22
поделиться

Я не уверен, как бы вы могли полностью объединить эти вещи, учитывая, что в каждом есть много дополнительных данных, кроме самих результатов, но если вам просто нужен массив JavaScript, содержащий все 16 результатов, это должно сработать ...

var responses = [GetJsonObjectFromThatUriUsingJqueryOrSomething(),
                 GetJsonObjectFromThatOtherUriUsingJqueryOrSomething()];

// Probably want to check for success
// and ensure that responses[i].responseData.results is valid.

var results = [];
for (var i = 0; i < responses.length; ++i)
{
    results = results.concat(responses[i].responseData.results);
}
0
ответ дан 8 December 2019 в 12:22
поделиться

, а не объединить два результата вместе, я просто решил разобрать их, затем связывать эти два вместе. В итоге не было на самом деле не нужно объединять два вместе, когда их можно легко соединить в базе данных.

1
ответ дан 8 December 2019 в 12:22
поделиться
Object.prototype.merge = (function (ob) {
    var o = this;
    var i = 0;
    for (var z in ob) {
        if (ob.hasOwnProperty(z)) {
            o[z] = ob[z];
        }
    }
    return o;
})

var a = {a:1}
var b = {b:2}

var c = a.merge(b); // === {a:1,b:2}
4
ответ дан 8 December 2019 в 12:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: