在sencha touch中按类别分析json数据

时间:2013-03-28 07:14:31

标签: json parsing sencha-touch sencha-touch-2

我的sencha touch app我的json数据就像这样,

{
  "type": "FeatureCollection",
  "features": [
{
  "type": "Feature",
  "id": "rodos_business_pois.1",
  "geometry": {
    "type": "Point",
    "coordinates": [
      28.21962354993591,
      36.452844361147314
    ]
  },
  "geometry_name": "geom",
  "properties": {
    "id": null,
    "business_p": "AQUARIOUM",
    "name_owner": null,
    "surname_ow": null,
    "middle_nam": null,
    "category_n": "BAR",
    "category_c": "020200",
    "category_1": null,
    "category_2": null,
    "category_3": null,
    "address": "28 GRIVA GEORGIOU",
    "street_nam": "ÃÑÉÂÁ ÃÅÙÑÃÉÏÕ",
    "number": "28",
    "postcode": null,
    "places_en_": "RODOS",
    "f16": 1,
    "f17": 0,
    "tel": 2.24102778E9,
    "fax": 0,
    "mob": 0,
    "email": null,
    "url": null,
    "places_gr": null,
    "places_en": null
  }
},
{
  "type": "Feature",
  "id": "rodos_business_pois.2",
  "geometry": {
    "type": "Point",
    "coordinates": [
      28.225417523605692,
      36.436470953176716
    ]
  },
  "geometry_name": "geom",
  "properties": {
    "id": null,
    "business_p": "ZIGOS",
    "name_owner": null,
    "surname_ow": null,
    "middle_nam": null,
    "category_n": "BAR",
    "category_c": "020200",
    "category_1": null,
    "category_2": null,
    "category_3": null,
    "address": "89 KAZOULI STEFANOU",
    "street_nam": "ÊÁÆÏÕËÇ ÓÔÅÖÁÍÏÕ",
    "number": "89",
    "postcode": null,
    "places_en_": "RODOS",
    "f16": 1,
    "f17": 0,
    "tel": 2.24103987E9,
    "fax": 0,
    "mob": 0,
    "email": null,
    "url": null,
    "places_gr": null,
    "places_en": null
  }
},
{
  "type": "Feature",
  "id": "rodos_business_pois.3",
  "geometry": {
    "type": "Point",
    "coordinates": [
      28.223100266167258,
      36.45251556942936
    ]
  },
  "geometry_name": "geom",
  "properties": {
    "id": null,
    "business_p": "LA ROSA FASHION BAR",
    "name_owner": null,
    "surname_ow": null,
    "middle_nam": null,
    "category_n": "BAR",
    "category_c": "020200",
    "category_1": null,
    "category_2": null,
    "category_3": null,
    "address": "4 PAPANIKOLAOU GEORGIOU",
    "street_nam": "ÐÁÐÁÍÉÊÏËÁÏÕ ÃÅÙÑÃÉÏÕ",
    "number": "4",
    "postcode": null,
    "places_en_": "RODOS",
    "f16": 1,
    "f17": 0,
    "tel": 2.2410974E9,
    "fax": 0,
    "mob": 0,
    "email": null,
    "url": null,
    "places_gr": null,
    "places_en": null
  }
},
{
  "type": "Feature",
  "id": "rodos_business_pois.4",
  "geometry": {
    "type": "Point",
    "coordinates": [
      28.226588152300117,
      36.43403310824089
    ]
  },
  "geometry_name": "geom",
  "properties": {
    "id": null,
    "business_p": "G-NET",
    "name_owner": null,
    "surname_ow": null,
    "middle_nam": null,
    "category_n": "RESTAURANT",
    "category_c": "020100",
    "category_1": null,
    "category_2": null,
    "category_3": null,
    "address": "135 AGIAS ANASTASIAS",
    "street_nam": "ÁÃÉÁÓ ÁÍÁÓÔÁÓÉÁÓ",
    "number": "135",
    "postcode": null,
    "places_en_": "RODOS",
    "f16": 1,
    "f17": 0,
    "tel": 2.2410351E9,
    "fax": 0,
    "mob": 0,
    "email": null,
    "url": null,
    "places_gr": null,
    "places_en": null
  }
},
{
  "type": "Feature",
  "id": "rodos_business_pois.5",
  "geometry": {
    "type": "Point",
    "coordinates": [
      28.215719877096184,
      36.43079419827729
    ]
  },
  "geometry_name": "geom",
  "properties": {
    "id": null,
    "business_p": "ANDRMEDA LOUNGE BAR",
    "name_owner": null,
    "surname_ow": null,
    "middle_nam": null,
    "category_n": "CAFE",
    "category_c": "020100",
    "category_1": null,
    "category_2": null,
    "category_3": null,
    "address": "4 PAPANDREOU GEORGIOU",
    "street_nam": "ÐÁÐÁÍÄÑÅÏÕ ÃÅÙÑÃÉÏÕ",
    "number": "4",
    "postcode": null,
    "places_en_": "RODOS",
    "f16": 1,
    "f17": 0,
    "tel": 2.2410974E9,
    "fax": 2.2410975E9,
    "mob": 0,
    "email": null,
    "url": null,
    "places_gr": null,
    "places_en": null
  }
},
{
  "type": "Feature",
  "id": "rodos_business_pois.6",
  "geometry": {
    "type": "Point",
    "coordinates": [
      28.226209613062103,
      36.43806195312573
    ]
  },
  "geometry_name": "geom",
  "properties": {
    "id": null,
    "business_p": "DOLCE CAFE",
    "name_owner": null,
    "surname_ow": null,
    "middle_nam": null,
    "category_n": "RESTAURANT",
    "category_c": "020100",
    "category_1": null,
    "category_2": null,
    "category_3": null,
    "address": "14 DODEKANISIAKIS NEOLEAS",
    "street_nam": "ÄÙÄÅÊÁÍÇÓÉÁÊÇÓ ÍÅÏËÁÉÁÓ",
    "number": "14",
    "postcode": null,
    "places_en_": "RODOS",
    "f16": 1,
    "f17": 0,
    "tel": 2.24102988E9,
    "fax": 0,
    "mob": 0,
    "email": null,
    "url": null,
    "places_gr": null,
    "places_en": null
  }
},
.......
.......
....... and so on..

我可以使用sencha touch json reader一次解析所有这些数据, 但现在我想按类别解析这些数据,意味着 我希望解析所有类似 BAR CAFE RESTAURANT 等类别的数据。

任何帮助都将得到帮助。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

这是您过滤商店的方式

store.filterBy(function(record, id){
    var cat = record.get('category_n');
    if(cat == 'BAR' || cat == 'CAFE' || cat == 'RESTAURANT'){
        return true;
    }else{
        return false;
    }
});

这将迭代每条记录并将其传递给函数,因此如果要检查category_n

编辑:确保在下次通过

将数据加载到商店时清除商店过滤器
store.clearFilter();