如何在react-native中解决GET JSON响应问题

时间:2019-04-08 18:02:00

标签: reactjs react-native

我正在使用我的React Native应用程序中的一个api。但是请求响应始终返回一个String,即使我尝试解析时看到一个错误也是如此。

我使用了axios,superagent和fetch api。但即时通讯仍面临错误,同一个错误。

fetch(`http://fonte83.com.br/wp-json/wp/v2/posts?page=1&_embed`, {
            method: "GET",
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/x-www-form-urlencoded',
            }
        }).then(result => result.json()).then(text => console.log(text))

此代码在导航器控制台或其他应用程序上运行良好,但在我的应用程序上却一团糟。 我尝试使用此代码在axios中进行转换的另一个代码,仍然遇到错误。

if (typeof data === 'string') {
             try {
                 if (!String.prototype.trim) {
                     String.prototype.trim = function () {
                         return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
                     };
                 }
                 data = JSON.parse(data.trim(''));
             } catch (e) {
                 throw {message: 'can not JSON.parse the response'}
             }
         }

我收到此错误: “ JSON在位置0处出现意外令牌”。

上面的这两个代码来自不同的尝试

奇怪的是,因为代码在其他位置运行。 谁能帮我吗?

1 个答案:

答案 0 :(得分:0)

Fetch API在Promise result.json()上返回JSON对象,因此您的代码应为:

fetch(`http://fonte83.com.br/wp-json/wp/v2/posts?page=1&_embed`, {
        method: "GET",
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/x-www-form-urlencoded',
        }
    }).then(result => result.json())
      .then(obj => {
         console.log('Title of the first post: ' + obj[0].title.rendered);
         console.log('Content of the first post: ' + obj[0].content.rendered);
    });

您正在尝试解析result.json()

已经解析过的对象