如何连接字符串和数字以生成JSON对象?

时间:2017-10-02 04:03:23

标签: javascript json

我想制作一个像这样的JSON对象:

let lob =  { courses_dept: 'sci', courses_avg: 77.09 };

将变量连接在一起:

var dept = "sci";
var avg = 77.09;

let a = '{"courses_dept": dept, "courses_averge": avg }';

但如果我这样做,我得到了SyntaxError:

let b = JSON.parse(a); 

这样做的正确方法是什么?

5 个答案:

答案 0 :(得分:1)

如果你想使用字符串:

var dept = "sci";
var avg = 77.09;

let a = `{"courses_dept": "${dept}", "courses_averge": ${avg} }`;

这假定dept是一个字符串。如果您事先不知道这一点,请使用JSON.stringify包装每个变量:

let b = `{"courses_dept":   ${JSON.stringify(dept)}
         ,"courses_averge": ${JSON.stringify(avg)}}`;

请注意,该字符串使用反引号`而不是常规引号。这允许您执行string interpolation。如果你想直接连接,可以使用+。

您也可以只做常规对象:

let c = {"courses_dept": dept, "courses_averge": avg}
JSON.stringify(c)

答案 1 :(得分:0)

为什么不只是简单的 json 对象?

var dept = "sci";
var avg = 77.09;

let a = {
  "courses_dept": dept,
  "courses_averge": avg
};

console.log('a', a);

答案 2 :(得分:0)

这种方式有效并且似乎更简单。

let b = {};
b["courses_dept"] = dept;
b["courses_averge"] = avg;

答案 3 :(得分:0)

您可以使用单个qouates和串联变量制作一个json。之后,您可以解析字符串

    <div class="container">
    <div class="row">
        <div class="col-md-4">
            <div class="row">
                <div class="col-md-12">
                    Page One
                </div><!--col 12-->

                <div class="col-md-12">
                    Page Two
                </div><!--col 12-->
            </div><!--row-->
        </div><!--col 4-->

        <div class="col-md-4">
            Page Three
        </div><!--col 4-->

        <div class="col-md-4">
            <div class="row">
                <div class="col-md-12">
                    Page Four
                </div><!--col 12-->

                <div class="col-md-12">
                    Page Five
                </div><!--col 12-->
            </div><!--row-->
        </div><!--col 4-->

    </div><!--row-->
</div><!--container-->

答案 4 :(得分:0)

注意 JSON 代表 JavaScript 对象符号。 JSON 总是 一个字符串。它是编码数据的字符串表示。没有“一个JSON对象”这样的东西。

不要试图通过将字符串和其他值连接在一起来编写 JSON。而是构建一个对象并将其传递给 JSON.stringify -

const dept = "sci"
const avg = 77.09

// make an object
const myobject = { courses_dept: dept, courses_average: avg }

// use JSON.stringify to encode myobject to JSON
const myjson = JSON.stringify(myobject)
console.log("encoded", myjson)

// test JSON.parse to decode the JSON and get the object back
console.log("decoded", JSON.parse(myjson))

encoded {"courses_dept":"sci","courses_average":77.09}

decoded {
  "courses_dept": "sci",
  "courses_average": 77.09
}