2017-05-26 5 views
0
var var1 = JSON.parse('[{"ItemId":1, "ItemName":"item 1\"", "Unit":"Nos","Remarks":null, "ConsumedQuantity":1.00}, 
     {"ItemId":1253, "ItemName":"item 2", "Unit":"Nos", "Remarks":null, "ConsumedQuantity":1.00}]'); 

var1.forEach(function (e) { 
    Object.keys(e).forEach(function (key) { 
     if (e[key] == id) { 
      //doing some stuff here 
     } 
    }); 
}); 

JSONの値に二重引用符が含まれていない場合、このコードは完全に機能します。このJSONは、MVCのModelのリストから生成されます。 私は@Html.Raw(Json.Encode(ViewBag.materialDetails))を使用してリストをJSONに変換します。二重引用符がある場合、forEachには入りません。スクリプトでこのJSONを正確に解析できませんか?

すべてのヘルプは高く評価され:)あなたはそれかJSON.parseその周りティックを追加する必要はありませんので、

+2

が、それは文字列 ' "ItemNameの" であるときに、2つの\\は、それをエスケープしなければなりませんうまくいくかもしれない

var var1 = @Html.Raw(Json.Encode(ViewBag.materialDetails)); 

:あなたは

var var1 = JSON.parse('@Html.Raw(Json.Encode(ViewBag.materialDetails))'); 

に変更した場合は

"アイテム1 \\ "" ' – epascarello

答えて

2

@Html.Raw(Json.Encode(ViewBag.materialDetails))は有効なJSONデータを返す必要があります。それは

+1

これは動作します:https://dotnetfiddle.net/gBD2BB – Sphinxxx

+0

@Sphinxxx Nice!:) – lagerone

+0

パーフェクト!ありがとう:) – Shanid

関連する問題