猿问

无法解析包含转义字符的JSON对象

我是javascript新手,只是学习AJAX调用和解析JSON对象,所以我知道我只是缺少明显的东西。我可以从API检索JSON字符串,但无法正确解析。我不确定是否要发送无法解析的JSON对象,或者只是尝试以错误的方式读取字段。感谢您抽出宝贵的时间阅读本文,非常感谢您的帮助,我不知所措。


我可以通过this.responseText获取JSON字符串,但是当我尝试访问“标题”字段时,我只会感到无所适从。我正在尝试通过以下方式访问它:this.responseText.title我也尝试过:this.responseText [title]和this.responseText [“ title”]


"{\"Id\":220,\"Title\":\"Drawtober 19\",\"YearCreated\":0,\"DatePublished\":\"2018-12-14T03:27:05.51\"}" 

这是我从AJAX调用中获得的,也是我尝试获得标题的尝试:


var xhttp = new XMLHttpRequest();

        xhttp.onreadystatechange = function() {

            if (this.readyState == 4 && this.status == 200) {

                let x = this.responseText;

                let firstTest = JSON.parse(x[0]);

                let secondTest = JSON.parse(x.Title);

            }

        };

        xhttp.open("GET", "http://www.faithfulimagination.com/api/artwork/220", true);

        xhttp.send();

        }

我期望看到“ Drawtober 19”,而我得到的只是“未定义”


编辑


正如Barmar所指出的,该问题最初是在我的API中。我正在调用JsonConvert.SerializeObject并返回一个字符串,而不是仅返回该对象。两次调用JSON.parse(x)都可以像修复我的API一样完美地工作,而只需调用一次即可。

谢谢大家这么快回答!似乎每个人都立即意识到我的问题。


鸿蒙传说
浏览 273回答 3
3回答

慕尼黑5688855

您需要使用将解析字符串解析为一个对象JSON.parse(this.responseText)。您的属性将在该方法返回的对象上。JSON.parse(this.responseText).Title
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答