zjroland 2022-12-24 10:31 采纳率: 50%
浏览 22

js如何处理返回的json数据

我的javascript代码是:

fetch(url, {
            method: 'post',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({
                'url':link
            })
        }).then(async (res) => {
            let data = await res.json();
             console.log(data);
            wx.config({
                debug: true, 
                appId:data.appid,  //必填,公众号的唯一标识
                timestamp: data.timestamp, // 必填,生成签名的时间戳
                nonceStr: data.nonceStr, // 必填,生成签名的随机串
                signature: data.signature, // 必填,签名
                jsApiList: ["updateAppMessageShareData", "updateTimelineShareData"],
            });
        });

查看console.log(data),发现返回的data是:
{"d":"{"appid":"wxa854430e01470yyh","jsapi_ticket":"O3SMui8bG7kJnF36aXbe8w3-gsgorFbSiEWacVeskrQJv_1I1mF2aTKSDbicr_OY41szYjGl5T-i9DDaRxKT9g","noncestr":"fATeoIKwkeUfnnI","timestamp":"1771785915","outstring"}"}

json字符串前面多了一个d:
data.appid提示提示undefined
我用data.d.appid也无法得到appID,提示undefined,
请问怎么才能解析出正确的appid等参数。

  • 写回答

2条回答 默认 最新

  • |__WhoAmI__| 2022-12-24 11:03
    关注

    需要首先将该字符串解析为JavaScript对象:

    let innerData = JSON.parse(data.d);
    let appId = innerData.appid;
    

    或者也可以修改服务器端代码以直接返回内部JSON对象,而不是作为字符串。这将消除在客户端解析JSON的需要。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月24日