5

コンマで区切られた名前と、次のように値を区切ったオプションの値を含む文字列があります。

var str = "PowerOn:On,ValidLocation, temp:25";

次のように名前で値にアクセスできるオブジェクトまたはjsonに変換したい:

var a = {"PowerOn":"On", "ValidLocation":"true", "temp":25};
var result = a.PowerOn;
alert(result);

また

var a = {"PowerOn":"On", "ValidLocation":"true", "temp":25};
var result = a["PowerOn"];
alert(result);

注 1: 名前に値がない場合、デフォルトで true になります。

アップデート:

注 2 : 名前がリストに存在しない場合、その値は false になります: 例:

var a = {"PowerOn":"On", "ValidLocation":"true", "temp":25};
var result = a.Alarm 
//result must be false
4

2 に答える 2

1

区切り文字がそのまま残っていると仮定すると、これはうまくいきますか:

var result = {}; 

"PowerOn:On,ValidLocation, temp:25".split(",").forEach(function(i) { 
           result[(i=i.split(":"))[0]]=i[1] || true; 
});

// result : {PowerOn: "On", ValidLocation: true,  temp: "25"}

あなたの質問の2番目の部分には、どちらを使用!!result.Alarmする必要がありますかfalse

于 2013-07-17T06:21:46.217 に答える