我正在尝试创建一个包含键值对的json,其中该值是基于另外两个变量(字符串)的串联而生成的。
除了类似的连接方式
var a =“ A”;
var b =“ B”;
var c = a +“” + b;
并直接使用变量'c',可以通过以下方法在键值内附加变量。
var fName = "Test1";
var lName = "Test2";
var json = {"fname":fname,"lname":lName,"fullname":"'fName'+' '+'lname'"}
我期望结果为{“ fname”:“ Test1”,“ lname”:“ Test2”,“全名”:“ Test1 Test2”}
请让我知道是否可以实现。
答案 0 :(得分:1)
var fName = "Test1";
var lName = "Test2";
var json = {"fname":fName,"lname":lName,"fullname": fName + " " + lName}
编辑:在评论之后,我将说明其他处理JSON字符串和对象的方法...
// json is a JavaScript Object
typeof json // -> "object"
// If you want to create JSON string representing it, use JSON.stringify()
var jsonString = JSON.stringify(json)
typeof jsonString // -> "string"
// If you like pain, you can also build that string manually
// with the right escape sequences... (Do not do that)
var sillyJsonString = "{\"fname\":" + "\""+fName + "\",\"lname\":" + "\"" + lName + "\",\"fullname\":" + "\""+fName + " " + lName + "\"}"
typeof sillyJsonString // -> "string"
// And now let's make sure they have the same content
jsonString === sillyJsonString // -> true
// And the final part, re-create the object for JSON string
var sameJsonObject = JSON.parse(sillyJsonString)
// Now let's compare that the objects have the same content (but the are not equal ;))
JSON.stringify(json) === JSON.stringify(sameJsonObject) // -> true
希望这会为您指明正确的方向...