如何使用jquery在元素中存储JSON数据

时间:2015-01-06 02:31:45

标签: javascript jquery json

我的页面正在从php脚本接收JSON编码数据。使用我的浏览器开发网络工具,我可以看到数据如下:

{"state":200,"message":null,"result":"..\/0images\/listimg\/orig\/54ab4719bf848.jpeg","id":"957"}

我在页面上有一个名为

的输入标签
<input class="avatar-src" name="avatar_src" type="hidden" value="">

使用jquery,我想存储&#34; id&#34;的值。来自输入标记的value属性中的json字符串。

有一个JS脚本已经在处理&#34;州&#34;,&#34;消息&#34;和&#34;结果&#34;来自json字符串的对象。如果可能的话,我想单独保留该脚本并使用单独的脚本来提取JSON对象&#34; id&#34;。我该怎么做?

这是管理&#34; state&#34;的第一个ajax响应的一部分。 &#34;消息&#34;和&#34;结果&#34;

 ajaxUpload: function () {
  var url = this.$avatarForm.attr("action"),
      data = new FormData(this.$avatarForm[0]),
      _this = this;

  $.ajax(url, {
    type: "post",
    data: data,
    processData: false,
    contentType: false,

    beforeSend: function () {
      _this.submitStart();
    },

    success: function (data) {
      _this.submitDone(data);
    },

    error: function (XMLHttpRequest, textStatus, errorThrown) {
      _this.submitFail(textStatus || errorThrown);
    },

    complete: function () {
      _this.submitEnd();
    }
  });
},

syncUpload: function () {
  this.$avatarSave.click();
},

submitStart: function () {

},

submitDone: function (data) {
  console.log(data);

  try {
    data = $.parseJSON(data);
  } catch (e) {};

  if (data && data.state === 200) {
    if (data.result) {
      this.url = data.result;

      if (this.support.datauri || this.uploaded) {
        this.uploaded = false;
        this.cropDone();
      } else {
        this.uploaded = true;
        this.$avatarSrc.val(this.url);
        this.startCropper();
      }

      this.$avatarInput.val("");
    } else if (data.message) {
      this.alert(data.message);
    }
  } else {
    this.alert("Failed to response");
  }
},

2 个答案:

答案 0 :(得分:0)

最好首先为您的输入标记提供一个ID属性作为名称属性,以便它可以唯一引用。

所以无论你使用JSON对象填充什么var(让我们只调用它:var jSn):

<input id="avatar_src" name="avatar_src" class="avatar-src" type="hidden" value="">
<script>
 $('#avatar_src').val(jSn.id);
</script>

答案 1 :(得分:0)

假设这是实际上 JSON,您必须先解析它...例如,假设您的JSON链接到引用(变量):

var myJSON = '{"state":200,"message":null,"result":"..\/0images\/listimg\/orig\/54ab4719bf848.jpeg","id":"957"}';

从这里开始,您必须使用JSON.parse将JSON解析为JavaScript对象:

var myJSON = JSON.parse(myJSON);

然后,从这里您可以选择值作为JavaScript对象。

$(".avatar-src").val(myJSON.id);