2017-07-04 11 views
-1

これまでに質問されていましたが、その答えを理解できませんでした。だから私は再び尋ねている。これは私が操作する必要があるオブジェクトです。それはNodejs:オブジェクト内の単一のキー値を変更する

[ 
    "description": { 
     "zh": "Chinese", 

    }, 
    "nutrition": { 
     "zh": "CNutrition", 
     "en": "ENutrition" 
    }, 
    "brand_names": { 
     "zh": "chineseBName", 
     "en": "englishBName" 
    } 
] 

に変更しますが、私は "EN" を維持したい

[ 
    "description": { 
     "zh": "CDes", 
     "en": "EDes" 
    }, 
    "nutrition": { 
     "zh": "CNutrition", 
     "en": "ENutrition" 
    }, 
    "brand_names": { 
     "zh": "chineseBName", 
     "en": "englishBName" 
    } 
] 

私は、次の生のコードでURLにPUTリクエストを送信

{ 
    description: { 
    "zh" : "chinese" 
    } 
} 

:「EDES " 同じように。私は

if (req.body.description.zh !== "undefined"){ 
    const id = "{" + req.params + " }"; 
    var obj = { 
     'zh' : req.body.description.zh 
    }; 

    Product.update(id, {'$set': { 
     "description.$.zh" : req.body.description.zh  
     } 
    }); 
} 

として$を使用しましたが、動作しません。私は説明、栄養、ブランド名のためにこれを行う必要があります。誰かが助けてください。あなた This is the screenshot of the json I am getting after GET request

+2

ある

var obj = { 'zh' : yourObject[0].description.zh }; 

によってZHオブジェクトを取得することができます操作する配列は有効な配列ではありません。 – Xatyrian

+0

{ "説明":{ "ZH": "CDES"、 "EN": "EDES" }、 "栄養":{ "ZH": "CNutrition"、 "EN": " ENutrition」 }、 "brand_names":{ "ZH": "chineseBName"、 "EN": "englishBName" }、 "名称":{ "EN": "英語" } } これは私が要求を得ることから得ている正確なオブジェクトです。 – Rachit

+0

誰かが私に答えてくれますか? @ Xatyrianなぜそれは有効な配列ではありませんか? – Rachit

答えて

1

ありがとうこれはあなたのオブジェクト

var yourObject = [ 
    "description": { 
     "zh": "CDes", 
     "en": "EDes" 
    }, 
    "nutrition": { 
     "zh": "CNutrition", 
     "en": "ENutrition" 
    }, 
    "brand_names": { 
     "zh": "chineseBName", 
     "en": "englishBName" 
    } 
] 

であればあなたがあなたの最初のオブジェクトは、あなたがしようとしているJSON配列配列

+0

説明の "en"部分を上書きしないで、 "zh"部分のみを更新するにはどうすればよいですか? – Rachit

+0

yourObject [0] .description.zh = "新しい値" –

+0

'yourObjectはvliad JSON配列ではありません...私のコメントの中で述べたように、JSON配列には括弧を追加する必要がありますJSONオブジェクト。有効でないことを確認するには、[このバリデータ](https://jsonlint.com/)を試すことをお勧めします。 – Xatyrian

関連する問題