【问题标题】:How to set json data as a variable in javascript? [duplicate]如何在javascript中将json数据设置为变量? [复制]
【发布时间】:2014-05-28 10:11:51
【问题描述】:

我随身携带了以下 json 数据

 {
                            "id": "0004",
                            "name": "Thums Up",
                            "image":{"url": "images/0001.jpg","width": 200,"height": 200},
                            "Can":[ "250ml", "300ml","330ml", {"image":"images/0001.jpg" }],
                            "Bottle":[ "350ml",  "600ml", {"image":"images/0001.jpg" } ],
                            "Fountain":["small", "large", {"image":"images/0001.jpg" }]
                        }

我想在我的 html 文件中使用上面的 json 数据,所以我手动删除所有空格并以这种方式分配它

 <script type="text/javascript">
    $(document).ready(function () {

    var jsondata = ' {"id": "0004","name": "Thums Up","image":{"url": "images/0001.jpg","width": 200,"height": 200},
    "Can":[ "250ml", "300ml","330ml", {"image":"images/0001.jpg" }],"Bottle":[ "350ml",  "600ml", {"image":"images/0001.jpg" } ],"Fountain":["small", "large", {"image":"images/0001.jpg" }]}';
    });
    </script>

如果 json 数据很大,那么这样做真的要花很多时间。 有什么方法或工具可以自动完成吗??

【问题讨论】:

标签: javascript jquery


【解决方案1】:

如果你想要 json 数据作为字符串格式,那么你必须使用 JSON.stringify 函数。

见下例:

var jsonData = {
        "id": "0004",
        "name": "Thums Up",
        "image": { "url": "images/0001.jpg", "width": 200, "height": 200 },
        "Can": ["250ml", "300ml", "330ml", { "image": "images/0001.jpg" }],
        "Bottle": ["350ml", "600ml", { "image": "images/0001.jpg" }],
        "Fountain": ["small", "large", { "image": "images/0001.jpg" }]
    };
    var jsonString = JSON.stringify(jsonData);

【讨论】:

    【解决方案2】:

    JSON 是 javascript 的子集。这意味着 JSON 可以直接解析为 javascript。所以去掉那些外部引号,它应该可以正常工作。

    var jsondata = {
        "id": "0004",
        "name": "Thums Up",
        "image": {
            "url": "images/0001.jpg",
            "width": 200,
            "height": 200
        },
        "Can": ["250ml", "300ml", "330ml", {
            "image": "images/0001.jpg"
        }],
        "Bottle": ["350ml", "600ml", {
            "image": "images/0001.jpg"
        }],
        "Fountain": ["small", "large", {
            "image": "images/0001.jpg"
        }]
    }
    

    【讨论】:

    • 除了这不再是 JSON 因为它不是 String
    • 哪个可能更好,这取决于它的用途。但从技术上讲,你是正确的。
    • @Alex Wayne ,所以你的意思是说我不需要给外部引号,它会自动完成知道吗??。
    • 如果您将该 json 作为字符串,请使用 JSON.parse() 将其转换为对象。
    【解决方案3】:

    在任何 js 控制台中运行:(或者你可以把它放在你的代码中)

    JSON.stringify({
                                "id": "0004",
                                "name": "Thums Up",
                                "image":{"url": "images/0001.jpg","width": 200,"height": 200},
                                "Can":[ "250ml", "300ml","330ml", {"image":"images/0001.jpg" }],
                                "Bottle":[ "350ml",  "600ml", {"image":"images/0001.jpg" } ],
                                "Fountain":["small", "large", {"image":"images/0001.jpg" }]
                            })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-01
      • 2020-05-08
      • 1970-01-01
      • 2014-05-26
      • 1970-01-01
      • 1970-01-01
      • 2014-06-18
      • 1970-01-01
      相关资源
      最近更新 更多