我的页面正在从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");
}
},
答案 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);