2015-04-25 101 views
2

我有一個的node.js服務器正在接收此JSON對象作爲一個看跌BodyParser解析:JSON對象嵌套在node.js中

{ 
    stats = { 
      abdominal=0, 
      bicep=0, 
      deltoids=0, 
      erector_spinae=0, 
      gastro_soleus=0, 
      gluteus=0, 
      hamstrings=0, 
      lat_dor_rhom=0, 
      obliques=0, 
      pectoralis=0, 
      quadriceps=0, 
      trapezius=0, 
      triceps=0 
    }, 
    name=Name, 
    _id=userid, 
    level=1, 
    experience=200 
} 

我使用此代碼塊,試圖訪問數據:

user.name = req.body.name; 
user.level = req.body.level; 
user.experience = req.body.experience; 

user.stats = { 
    abdominal: req.body.stats["abdominal"], 
    bicep: req.body.stats["bicep"], 
    deltoids: req.body.stats["deltoids"], 
    erector_spinae: req.body.stats["erector_spinae"], 
    gastro_soleus: req.body.stats["gastro_soleus"], 
    gluteus: req.body.stats["gluteus"], 
    hamstrings: req.body.stats["hamstrings"], 
    lat_dor_rhom: req.body.stats["lat_dor_rhom"], 
    obliques: req.body.stats["obliques"], 
    pectoralis: req.body.stats["pectoralis"], 
    quadriceps: req.body.stats["quadriceps"], 
    trapezius: req.body.stats["trapezius"], 
    triceps: req.body.stats["triceps"] 
}; 

名稱,級別和經驗值更新得很好,但訪問stats對象的成員似乎不工作。當我做一個簡單的console.log(req.body["stats"]["abdominal"]);時,我得到一個undefinedconsole.log(req.body["stats"]);確實有效,並打印出整個對象。任何想法爲什麼訪問這些變量不起作用?

+1

你所描述的「JSON對象」不是JSON也不是一個對象。有效的Javascript對象的格式爲「{key:value}」,但不是「{key = value}」。那是什麼記錄,如果你console.log'req.body'?另外,由於stats屬性的鍵都不是變量,所以你應該使用點符號來訪問它們:'req.body.stats.abdominal'。您也可以只分配整個屬性引用:'user.stats = req.body.stats;'。 –

回答

0

嗯,我沒有解決問題,但我決定有一個嵌套的對象真的沒有任何好處,所以我只是把它全部一層。這解決了我遇到的問題。