【问题标题】:Combine 2 or more JSON in PHP [closed]在 PHP 中组合 2 个或更多 JSON [关闭]
【发布时间】:2016-05-07 10:56:54
【问题描述】:

我当前的 JSON 值是这样的:

{"vegetable_names":["vegetables 1","vegetables 2","vegetables 3"]}{"grade":["XXL","A","B","S"]}{"packages":["Carton Boxes","Baskets"]}

但我希望输出是这样的:

{"vegetable_names":["vegetables 1","vegetables 2","vegetables 3"],"grade":["XXL","A","B","S"],"packages":["Carton Boxes","Baskets"]}

【问题讨论】:

  • echo '{"vegetable_names":["vegetables 1","vegetables 2","vegetables 3"],"grade":["XXL","A","B","S"],"packages":["Carton Boxes","Baskets"]}'; 说真的,我们需要查看您的代码以提供任何有用的帮助。
  • 如果您不澄清数据是如何产生的,您的问题可能会被关闭。

标签: php arrays json


【解决方案1】:

JSON 只是一些数据结构的文本表示。从 JSON 字符串中恢复数据结构,使用 PHP 对其进行修改(或创建一个新的数据结构,如果更合适的话),再次将更新/新的数据结构编码为 JSON

您作为输入发布的“JSON”似乎根本不是JSON。它是三个JSON 字符串的串联。这样不行!

// Input JSON strings
$json1 = '{"vegetable_names":["vegetables 1","vegetables 2","vegetables 3"]}';
$json2 = '{"grade":["XXL","A","B","S"]}';
$json3 = '{"packages":["Carton Boxes","Baskets"]}';

// Restore the data structures as arrays
$data1 = json_decode($json1, TRUE);
$data2 = json_decode($json2, TRUE);
$data3 = json_decode($json3, TRUE);

// Combine them; it seems all you need is a simple merging
$data = array_merge($data1, $data2, $data3);

// Encode the combined arrays as JSON again
$output = json_encode($data);

【讨论】:

    【解决方案2】:

    我猜你得到了你描述的 Json。如果不是,我建议您按照 Paul Crovella 的解决方案从一开始就做好。

    所以假设你没有选择,如何将 Json 解码为合并这两个或更多的对象或数组,然后将它们再次编码为 Json。 丑陋,但是如果 Json 是由独立于您的源创建的,您可以这样做。

    【讨论】:

      猜你喜欢
      • 2012-03-23
      • 1970-01-01
      • 1970-01-01
      • 2013-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多