【问题标题】:Can i return an array of "number, number" in json format?我可以返回 json 格式的“数字,数字”数组吗?
【发布时间】:2009-05-10 11:53:53
【问题描述】:

我的服务器上有一个纬度/经度对象列表。

例如。

public class LatitudeLongitude
{
    public float Latitude;
    public float Longitude;
}

简单。

现在,我可以以 json 格式返回这些集合的集合吗?但是……我不想列出键,只列出值。

这意味着正常的结果将类似于 ...

{ { lat: 111, long : 222 }, { lat: 333, long : 444 } }   ..

但我希望...

{ {111, 222}, {333, 444} ..... }
{ {obj1.Lat, obj1.Long}, {obj2.Lat, obj2.Long} ... etc. ... }

这可能吗?我的意思是,我可以轻松地在服务器端制作该字符串。但这是正确的 JSON 输出格式吗?

有人可以确认一下吗?

干杯:)

PS。我几乎不知道任何 Json,所以请不要犹豫,纠正我上面的糟糕示例。

【问题讨论】:

    标签: arrays json


    【解决方案1】:

    使用 JSON 数组:

    [ [111, 222], [333, 444], ... ]
    

    【讨论】:

    • 外面应该是方括号而不是大括号吧?
    • 是的,复制/粘贴问题。我在发布后立即纠正了它。
    【解决方案2】:

    Ayman 的提议不是很正确的 JSON 语法。作为一个对象 {..} 总是由具有名称的字段组成。因此,我们将再次拥有具有 2 个“数组”类型字段的对象,这些字段没有名称 -> 对象的 json 无效。

    www.json.org 对 json 字符串的外观有很好的描述。查看此描述,您会看到没有名称字符串的字段不允许对象,因此此 {111,222} 不是 json 中的有效对象,但这是有效的 [111,222] 数组。这不是一个有效的对象 {[111,222]} 但这是 {array1 : [111,222]}。

    我猜你真正想要的很可能是一个像这样的数组数组,没有封装为一个对象。

    [[111,222],[333,444]]。

    这种方法可以让您选择将任意多的纬度/经度数组添加到封闭数组中,同时无论外部数组的大小如何,您都可以使用 javascript 循环处理内部数组。

    希望有所帮助。

    干杯 迈克尔

    【讨论】:

    • 这是我在发布后立即纠正的复制/粘贴问题。很抱歉造成混乱。
    【解决方案3】:

    如果您需要使用 JSON 中的键访问它,则需要指定它(或使用 JS 在客户端将数组转换为对象)。否则,数组应该可以工作:

    var json = [ [123, 456], [234, 567] ];
    var convertedJson = [];
    for (i = 0; i < json.length; ++i) {
        var thisObj = new Object();
        thisObj.latitude = json[i][0];
        thisObj.longitude = json[i][1];
        convertedJson[i] = thisObj;
    }
    

    【讨论】:

      【解决方案4】:

      但这是正确的 JSON 输出吗 格式?

      您可以在 jslint.com 上粘贴 JSON 以验证您的 JSON

      【讨论】:

        【解决方案5】:

        ASP.NET MVC JSON 序列化程序应将 IList&lt;LatitudeLongitude&gt; 转换为如下形式:

        [{"Latitude":111,"Longitude":222},{"Latitude":333,"Longitude":444} .. ]
        

        我相信在 ASP.NET MVC 下的 JSON 序列化器只是一个热连线的 .NET core Javascript 序列化器。

        我认为 .NET 不可能使用序列化程序。可能需要手动渲染字符串。

        【讨论】:

          猜你喜欢
          • 2011-02-07
          • 2016-10-19
          • 1970-01-01
          • 1970-01-01
          • 2011-06-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多