如何用我自己的变量替换默认的JSON.stringify变量K和A.

时间:2014-08-15 05:22:45

标签: javascript json

我希望我的多边形点通过ajax进入数据库。所以我像这样使用

function StorePolygon(id, poly_points) {
   var html;
   // The values of id=1001 and poly_points=((47.53208121578362, 7.705052197034092),
   //   (47.53188401121172, 7.704971730763646),(47.53189169452062, 7.705076336915226))
   $.ajax({
     url: url_prefix + "SetPolygonInfo",
     data: ({
        'id': id,
        'polypoints': JSON.stringify(poly_points),
        'as_json': 1
    }),
    async: false,
    dataType: "json",
    success: function(result) {

        html = result.html;

     },
     error: function(data, status, e) {
        alert(e);
     }
 });
 return html;
 }

JSON.stringify(poly_points)就像这样生成

[{"k":47.53208121578362,"A":7.705052197034092},
 {"k":47.53188401121172,"A":7.704971730763646}, 
 {"k":47.53189169452062,"A":7.705076336915226}]

我想使用自己的变量而不是K和A.Can有人帮忙吗?

2 个答案:

答案 0 :(得分:3)

您可以使用map创建一个新的对象数组,其中包含您要使用的键和JSON.stringify该数组:

JSON.stringify( poly_points.map(function (point){
  return {
    custom_key_for_k : point.k,
    custum_key_for_A : point.A
  };
}) )

您需要shim map才能支持版本9之前的Internet Explorer,或者使用包含它的任何Javascript库中的等效函数。

答案 1 :(得分:0)

我只是不想依赖JSON.stringify(poly_points)变量来存储在数据库中。所以我喜欢这个

function StorePolygon(id, poly_points) {
var html;
var olist = []
var obj = {}
/*
JSON.stringify(poly_points.map(function(point) {
    obj = {
        'x': point.k,
        'y': point.B
    }
    olist.push(obj)

}))*/

for(var i=0;i<poly_points.length;i++){
var xy = poly_points[i];
obj = {
        'x': xy.lat(),
        'y': xy.lng()
    }
    olist.push(obj)
 } 
 $.ajax({
    url: url_prefix + "SetPolygonInfo",
    data: ({
        'id': id,
        'poly_points': JSON.stringify(olist),
        'as_json': 1
    }),
    async: false,
    dataType: "json",
    success: function(result) {

        html = result.html;

    },
    error: function(data, status, e) {
        alert(e);
    }
});
return html;

 }

很好用。 JSON.stringify(poly_points)有时会给出k和A

 [{"k":47.53208121578362,"A":7.705052197034092},
  {"k":47.53188401121172,"A":7.704971730763646}, 
  {"k":47.53189169452062,"A":7.705076336915226}]

但有时会给出

 [{"k":47.53208121578362,"B":7.705052197034092},
  {"k":47.53188401121172,"B":7.704971730763646}, 
  {"k":47.53189169452062,"B":7.705076336915226}]

所以我不希望我的对象/返回列表取决于变量。