在jQuery中显示JSON响应中的特定值

在jQuery中显示JSON响应中的特定值,jquery,json,parsing,jquery-filter,Jquery,Json,Parsing,Jquery Filter,我有以下ajax功能: jQuery.ajax({ method: "PUT", dataType: 'json', callback: null, url: urlLocation, data: saveImage, success: function(response){ $(".response").html(JSON.stringify(response, null, '&nbsp').replace(/\n/g,

我有以下ajax功能:

jQuery.ajax({
    method: "PUT",
    dataType: 'json',
    callback: null,
    url: urlLocation,
    data: saveImage,
    success: function(response){
        $(".response").html(JSON.stringify(response, null, '&nbsp').replace(/\n/g, '<br>'));
        $(".response").css('font-family', 'Knowledge');
    },
    error: function (data) {
    $(".share-link").html("<div class='alert alert-danger'><p>Couldn't send photo: <b>"+ imageid.value + "</b></p></div>");
    }
});

我需要解析出值
SQUARE
纵向
横向
及其关联的
uri
方向
值。然后我需要能够将
uri
包装在
img
标记中。到目前为止,我只能给出JSON结构,但不确定如何过滤掉所需的特定字段。

如果不使用内联函数,代码会变得更清晰。让我们为success分配一个函数句柄:

jQuery.ajax({
    ...
    dataType: "json",
    success: myJSONsuccess;
    ...
});
因此必须有一个名为“myJSONsuccess”的函数:


在将其添加到标记之前,需要进行更多处理。记住,这些不是HTML,而是JSON,当您在响应上调用parseJSON时,您将拥有javascript对象而不是HTML元素。你想要的更像

 var obj = $.parseJSON(response.responseText);
        for (var property in obj.entity.entries) {
            if (obj.entity.entries.hasOwnProperty(property)) {
                $(".response").append($("<img alt='test' src='" + obj.entity.entries[property].uri + "'/>"));
            }

        }
var obj=$.parseJSON(response.responseText);
for(obj.entity.entries中的var属性){
if(对象实体条目hasOwnProperty(属性)){
$(“.response”).append($(“”);
}
}
以及您可能希望添加到响应中的任何其他内容


您可以向添加的每个映像添加一个id,然后在将其附加到响应div之前检查它是否已经存在,或者您可以查看src值,看看它是否重复。

JSON.parse然后像任何javascript一样访问它object@jfin3204您能否说明如何在success函数中实现循环遍历条目并查找/显示
方向
和关联的
uri
?我尝试了
var obj=$.parseJSON(响应);                         $(“.response”).html(obj.entity.entries),但这不起作用。休伯特的答案会起作用。或者您可以尝试$.parseJSON(response.responseText),我知道它返回的是JSON,而不是HTML元素。我不确定的是如何在我现有的代码中实现
.parseJSON
,并能够打印出结果实体:@Matt Well看着你的小提琴你使用了错误的选择器,“.response”正在查找一个类而不是id。基本上,您希望循环实体的entries数组,然后使用返回的数据构建所需的html元素。因此,上面的代码循环并使用uri作为src属性创建一个图像,然后将该值附加到具有响应类的所有元素。我的实际代码具有正确的类,这只是我设置的示例中的一个输入错误。通过在我的代码中放置for循环,它实际上破坏了应用程序@Matt您缺少成功的结束括号。这将破坏应用程序:。我遗漏了什么,让它无法正常运行?
var myJSONsuccess = function (JSONobj, StatusString, jqXHR) {
    //you probably will not need StatusString and jqXHR, so ignore them

    //There is no need to parse JSONobj. It is already parsed because of
    //dataType: "json"
    //in your ajax-command

    //This is SQUARE:
    var squ = JSONobj.entity.entries.SQUARE;

    //This is one of its properties:
    var orient = JSONobj.entity.entries.SQUARE.orientation;

    //alternatively you can write:
    var orient = squ.orientation;
    //this is exactly the same
};
 var obj = $.parseJSON(response.responseText);
        for (var property in obj.entity.entries) {
            if (obj.entity.entries.hasOwnProperty(property)) {
                $(".response").append($("<img alt='test' src='" + obj.entity.entries[property].uri + "'/>"));
            }

        }