我能以json格式返回“数字,数字”数组吗?

时间:2009-05-10 11:53:53

标签: arrays json

我的服务器上有一个lat / long对象列表。

例如

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,所以请不要犹豫,纠正我上面的可怜例子。

5 个答案:

答案 0 :(得分:8)

使用JSON数组:

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

答案 1 :(得分:3)

Ayman的提议不太正确JSON语法。对象{..}总是由具有名称的字段组成。所以我们再次拥有2个类型为'array'但没有名称的字段的对象 - >对象不是有效的json。

json字符串在www.json.org的外观非常好。看一下这个描述你会看到一个对象是不允许没有名字字符串的字段,所以这个{111,222}不是json中的有效对象,但这是有效的[111,222]数组。这不是有效的对象{[111,222]},但这是{array1:[111,222]}。

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

[[111222],[333444]。

这种方法可以让你选择在封闭数组中添加尽可能多的lat / long数组,同时你可以处理内部数组,无论外部数组的大小与javascript循环有多大。

希望有所帮助。

欢呼声 迈克尔

答案 2 :(得分:2)

如果需要使用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;
}

答案 3 :(得分:0)

  

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

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

答案 4 :(得分:-1)

ASP.NET MVC JSON序列化程序应该将IList<LatitudeLongitude>转换为这样的内容:

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

我相信在ASP.NET MVC下,JSON序列化程序只是一个热连接的.NET核心Javascript序列化程序。

我不认为使用序列化程序可以从.NET中获取。 Prob需要手动渲染字符串。