2012-06-04 44 views
0

我们发出一大堆json到node/faye并且有一些嵌套数组的问题。 这里是JSON:node.js休息json

{ 
    "event_189420": { 
     "num_horses": 11, 
     "sport_name": "horse", 
     "conditions": "", 
     "ort": 13, 
     "result_4": [], 
     "sis": "", 
     "fixed_odds": false, 
     "event_class": "Attele - Course G (trot)", 
     "event_desc": "Prix de L'U.N.A.T.", 
     "non_runners": "", 
     "event_id": 189420, 
     "tek": "", 
     "distance": "2650m", 
     "good_result_count": 0, 
     "result_prices": {}, 
     "result_1": [], 
     "ticker": "", 
     "prize": "6000 EUR", 
     "result_2": [], 
     "race_name": "Bordeaux Le Bouscat", 
     "big_screen": true, 
     "horses": [ 
      [ 
       "Qu'Il Vive del Sol", 
       false, 
       "", 
       "999", 
       "", 
       "", 
       "", 
       "", 
       false, 
       "", 
       false, 
       false, 
       "OK" 
      ], 
      [ 
       "Rocky du Bordage", 
       false, 
       "", 
       "999", 
       "", 
       "", 
       "", 
       "", 
       false, 
       "", 
       false, 
       false, 
       "OK" 
      ], 
      [ 
       "Reve", 
       false, 
       "", 
       "999", 
       "", 
       "", 
       "", 
       "", 
       false, 
       "", 
       false, 
       false, 
       "OK" 
      ], 
      [ 
       "Rafale des Racques", 
       false, 
       "", 
       "999", 
       "", 
       "", 
       "", 
       "", 
       false, 
       "", 
       false, 
       false, 
       "OK" 
      ], 
      [ 
       "Releve du Liard", 
       false, 
       "", 
       "999", 
       "", 
       "", 
       "", 
       "", 
       false, 
       "", 
       false, 
       false, 
       "OK" 
      ], 
      [ 
       "Nichtstarter", 
       false, 
       "****", 
       "****", 
       "", 
       "", 
       "", 
       "", 
       true, 
       "", 
       false, 
       false, 
       "OK" 
      ], 
      [ 
       "Rire Eclatant", 
       false, 
       "", 
       "999", 
       "", 
       "", 
       "", 
       "", 
       false, 
       "", 
       false, 
       false, 
       "OK" 
      ], 
      [ 
       "Quinquin", 
       false, 
       "", 
       "999", 
       "", 
       "", 
       "", 
       "", 
       false, 
       "", 
       false, 
       false, 
       "OK" 
      ], 
      [ 
       "Pacific d'Yvel", 
       false, 
       "", 
       "999", 
       "", 
       "", 
       "", 
       "", 
       false, 
       "", 
       false, 
       false, 
       "OK" 
      ], 
      [ 
       "Romain de Godisson", 
       false, 
       "", 
       "999", 
       "", 
       "", 
       "", 
       "", 
       false, 
       "", 
       false, 
       false, 
       "OK" 
      ], 
      [ 
       "Rhapsodie Models", 
       false, 
       "", 
       "999", 
       "", 
       "", 
       "", 
       "", 
       false, 
       "", 
       false, 
       false, 
       "OK" 
      ] 
     ], 
     "starting_time": "16:10", 
     "result_3": [], 
     "race_status": "open", 
     "small_screen": true, 
     "pmsg": "", 
     "race_num": 8 
    } 
} 

正如你可以看到有很多“空”元素(只"")的。对于'顶级'对象这没问题,我们得到'key':''。但是,对于子数组(在这种情况下,'马'),""元素被简单地删除。

这必须发生在客户端 - 我们在服务器端看到的所有内容看起来都不错。即使使用从文件中提取的静态json,也会在客户端上表现出相同的行为。

我们做错了什么或者这是node/faye的问题?

+2

你可能应该发布一些处理代码,而不是JSON数据。 – elmigranto

回答

-1

如果您需要在数组中创建占位符,请使用NULL而不是空字符串。

+0

我无法找到任何对被忽略的空字符串的引用;遍布网络的JSON测试套件不会忽略它们,以及V8的'JSON.parse'。 – lanzz

+0

你在测试什么浏览器?在使用JSON.parse和遇到空字符串时,IE的行为不如预期。看到这个讨论http://stackoverflow.com/questions/1543791/json-empty-string – srquinn

+0

铬 - 没有问题串或解析空字符串。您所谈论的问题似乎讨论了实际上编码转换失败的_seemingly_空字符串,从而导致JSON中的空值。 http://www.json.org/中的语法明确指出,字符串可以是零长度,并且不会限制哪些字符串可以作为数组中的值出现。 – lanzz