通过添加数组重新格式化json输出

时间:2014-10-07 12:34:59

标签: arrays json google-maps

我这样的json输出:

  

[{" ID":5262130," ADRES":" Apollo40"" LAT":" 52.34985&# 34;," LNG":" 4.88261"" prijskaartje":" duur"}

应该是:

  

[{" ID":5262130," ADRES":" Apollo40""位置" {" LAT&# 34;:" 52.34985"" LNG":" 4.88261"}" prijskaartje":" duur" }

我只是不知道怎么做?

非常感谢帮助。

2 个答案:

答案 0 :(得分:1)

以下两种方法可以创建一个可以创建所需JSON的对象。

一次创建一个包含所有属性的对象。

var jsObject = {
    id: 5262130,
    adres: "Apollo40",
    location: {
        lat: "52.34985",
        lng: "4.88261"
    },
    prijskaartje: "duur"
};

// JSON encode it.
var objectJSON = JSON.stringify(jsObject);

创建一个对象,然后逐个添加属性。

var jsObject = {};

jsObject.id = 5262130;
jsObject.adres = "Apollo40";

jsObject.location = {};

jsObject.location.lat = "52.34985";
jsObject.location.lng = "4.88261";

jsObject.prijskaartje = "duur";

// JSON encode it.
var objectJSON = JSON.stringify(jsObject);

由于我不知道您的信息来源是什么,这是我能做的最好的事情。如果您向我提供有关您所编码信息的更多信息,那么我可能会修改此答案。

希望这有帮助!

编辑:这是JS fiddle link

答案 1 :(得分:0)

好吧,我最后在php中做的是: 解码原始的json,重写并编码为json:

$rewrite_json = json_decode($original_json, true);
$coordinates = array();
  foreach($rewrite_json as $key => $value) {
     $location[] = array('id'=>$value['id'],
     'adres'=>$value['adres'],
     'prijskaartje'=>$value['prijskaartje'],
     'location'=> array('lat' => (float)$value['lat'], 'lng' => (float)$value['lng']));
  }
$new_json = json_encode($location, JSON_PRETTY_PRINT);