如果某些值不唯一且某些值是唯一的,如何在列表中排序和显示json值

时间:2016-05-01 13:03:11

标签: arrays json jsonreader

{
places: [
{
id: 1,
place:"America",
name: "Robert",
age: "22",
place_lat: "10.017",
place_lon: "76.344"
},
{
id: 1,
place:"America",
name: "Albert",
age: "22",
place_lat: "10.017",
place_lon: "76.344"
},
{
id: 2,
place:"China",
name: "Robert",
age: "22",
place_lat: "10.017",
place_lon: "76.344"
}
,
{
id: 2,
place:"China",
name: "Albert",
age: "20",
place_lat: "10.017",
place_lon: "76.344"
},
{
id: 4,
place:"Paris",
name: "Albert",
age: "20",
place_lat: "10.017",
place_lon: "76.344"
}
],
success: 1

}

使用这个json值,我想在列表视图中显示,我的预期结果是

美国 名称:罗伯特· 年龄:22 名称:阿尔伯特 年龄:22

中国 名称:罗伯特· 年龄:20 名称:阿尔伯特 年龄:20

巴黎 名称:阿尔伯特 年龄:20

我想在列表视图中添加这样的内容。但我无法做到。我在listview中得到了这样的结果

美国 名称:罗伯特· 年龄:22 的 名称:阿尔伯特 年龄:22

中国 名称:罗伯特· 年龄:20 的中国 名称:阿尔伯特 年龄:20

巴黎 名称:阿尔伯特 年龄:20

2 个答案:

答案 0 :(得分:0)

使用循环将每个对象添加到数组列表中。在每个循环中,在添加之前检查数组列表是否包含对象。然后,您将获得一个唯一的数组项目列表

或者您可以使用hash-map(键,值对)来完成此操作。键代表地点ID和值将是地点集合

答案 1 :(得分:0)

由于id不是唯一且无用的,你可以忽略它。

你可以通过json解析并预先创建一个包含所有信息的列表。在循环浏览每个名称时,将其添加到现有国家或创建新国家(如Ajay所说,您可能希望通过检查所有值来检查重复条目。)

names["America"].Add (new person ("robert", 22) );
names["America"].Add (new person ("albert", 22) );
names["Paris"].Add( new person ("albert", 20) );

从这样的数组/字典中,将信息移植到您正在寻找的格式会更容易,