使用javascript添加json对象

时间:2015-01-25 19:15:24

标签: javascript html json

我有一个包含以下代码的json文件:

    {
"full_name" : "Laishram Pilot",
"links" : [
        { "facebook" : "http://facebook.com" },
        { "twitter"  : "http://twitter.com" },
        { "youtube"  : "http://www.youtube.com" }
    ]
}

我有一个包含此代码的html文件:

<form action="updated.php">
<input type="text" name="sitename"> <br>
<input type="text" name="siteurl"> <br>
<input type="button" onclick="myFunction()" value="Submit">
</form>

现在我想用函数myFunction()编写javascript,以便每当用户使用网站名称和siteurl提交表单时,我将获得一个新更新的json文件。

示例:
用户插入形式如
  Sitename as google。
              Siteurl为http://www.google.com

json文件变为:

{
  "full_name" : "Laishram Pilot",
  "links" : [
      { "facebook" : "http://facebook.com" },
      { "twitter"  : "http://twitter.com" },
      { "youtube"  : "http://www.youtube.com" }
      { "google"  : "http://www.google.com" }
    ]
}

请帮帮我。

1 个答案:

答案 0 :(得分:1)

    var json =     {
    "full_name" : "Laishram Pilot",
    "links" : [
            { "facebook" : "http://facebook.com" },
            { "twitter"  : "http://twitter.com" },
            { "youtube"  : "http://www.youtube.com" }
        ]
    }

    function myFunction(){

      var sitename = document.getElementById('sitename').value;
      var siteurl = document.getElementById('siteurl').value;
      json["links"].push({sitename:siteurl});
      //return json;
      //the variable json will now be updated with the content

      //code to post the new object to the server.

      request= new XMLHttpRequestObject()
      request.open("POST", "updated.php", true)
      request.setRequestHeader("Content-type", "application/json")

      var str_json = JSON.stringify(json)
      request.send(str_json)

    }

然后,在您的工作中,您需要使用站点信息为您的字段分配ID。我删除了action部分,因为myFunction()调用将在json对象更新后为您提交表单:

<form>
<input type="text" id="sitename" name="sitename"> <br>
<input type="text" id="siteurl" name="siteurl"> <br>
<input type="button" onclick="myFunction()" value="Submit">
</form>

这样可行。