【问题标题】:How to store array of objects in db.json from json-server如何从 json-server 将对象数组存储在 db.json 中
【发布时间】:2017-08-27 07:36:12
【问题描述】:

我正在使用 json-server 创建一个假后端来以 json 格式存储一些数据。数据复杂如下——

   {
        "id": 0,
        "quizName": "Which Harry Potter Character Are You?",
        "characters": ["Harry", "Ron", "Hermoine"],
        "qa": [{
                "question": "Do you play Chess?",
                "answers": [{
                        "name": "yes",
                        "charscore": [0, 1, 0]
                    },
                    {
                        "name": "no",
                        "charscore": [1, 0, 1]
                    }
                ]
            },
            {
                "question": "Do you spell magic correctly?",
                "answers": [{
                        "name": "yes",
                        "charscore": [0, 0, 1]
                    },
                    {
                        "name": "no",
                        "charscore": [1, 1, 0]
                    }
                ]
            },
            {
                "question": "Do you have a Scar?",
                "answers": [{
                        "name": "yes",
                        "charscore": [1, 0, 0]
                    },
                    {
                        "name": "no",
                        "charscore": [0, 1, 1]
                    }
                ]
            }
        ]
    }

但是当我对 json-server 执行 jQuery POST 时,json 数据存储如下 -

{
  "quizName": "Which Harry Potter Character Are You?",
  "characters[]": [
    "Harry",
    "Ron",
    "Hermoine"
  ],
  "qa[0][question]": "Do you play Chess?",
  "qa[0][answers][0][name]": "yes",
  "qa[0][answers][0][charscore][]": [
    "0",
    "1",
    "0"
  ],
  "qa[0][answers][1][name]": "no",
  "qa[0][answers][1][charscore][]": [
    "1",
    "0",
    "1"
  ],
  "qa[1][question]": "Do you spell magic correctly?",
  "qa[1][answers][0][name]": "yes",
  "qa[1][answers][0][charscore][]": [
    "0",
    "0",
    "1"
  ],
  "qa[1][answers][1][name]": "no",
  "qa[1][answers][1][charscore][]": [
    "1",
    "1",
    "0"
  ],
  "qa[2][question]": "Do you have a Scar?",
  "qa[2][answers][0][name]": "yes",
  "qa[2][answers][0][charscore][]": [
    "1",
    "0",
    "0"
  ],
  "qa[2][answers][1][name]": "no",
  "qa[2][answers][1][charscore][]": [
    "0",
    "1",
    "1"
  ],
  "id": 1
}

post方法如下-

$.post(this.serverUrl, val, function (serverResponse) {
      //val contains the expected javascript object
      console.log(serverResponse);
});

如何将值正确存储在 json-server 中?

【问题讨论】:

  • 您应该使用JSON.stringify(serverResponse) 正确保存 JSON 对象,或者使用此 url (scotch.io/tutorials/…) 来获得有关如何在 JSON-Server 中存储数据的帮助
  • 在 db.json-{ "{\"quizName\":\"Which Harry Potter Character Are You?\",\"characters\":[\"harry\",\"ron\",\"harmione\"],\"qa\":[{\"question\":\"do u play chess?\",\"answers\":[{\"name\":\"yes\",\"charscore\":[0,1,0]},{\"name\":\"no\",\"charscore\":[1,0,1]}]},{\"question\":\"do u have scar?\",\"answers\":[{\"name\":\"yes\",\"charscore\":[1,0,0]},{\"name\":\"no\",\"charscore\":[0,1,1]}]},{\"question\":\"du u spell magic?\",\"answers\":[{\"name\":\"yes\",\"charscore\":[0,0,1]},{\"name\":\"no\",\"charscore\":[1,1,0]}]}]}": "", "id": 1 }
  • 字符串化在这里没有帮助
  • 是的,使用stringify 存储任何JSON 对象是正确的方法,当您想将其用作JSON 对象时,您可以使用JSON.parse(serverResponse)
  • 您能告诉我,您在保存到 json-server 时遇到的具体问题是什么?

标签: javascript jquery json json-server


【解决方案1】:

修改 AJAX 调用以发送 stringify 对象并设置 contentType: "application/json" 就可以了

修改AJAX调用如下-

$.ajax({
      type: "POST",
      url: this.serverUrl,
      data: JSON.stringify(val),
      contentType: "application/json"
 });

【讨论】:

    猜你喜欢
    • 2014-06-26
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    相关资源
    最近更新 更多