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

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日

悬赏问题

  • ¥50 关于DynamoRIO处理多线程程序时候的问题
  • ¥15 kubeadm部署k8s出错
  • ¥15 Abaqus打不开cae文件怎么办?
  • ¥20 双系统开机引导中windows系统消失问题?
  • ¥15 小程序准备上线,软件开发公司需要提供哪些资料给甲方
  • ¥15 关于生产日期批次退货退款,库存回退的问题
  • ¥15 手机应用的时间可以修改吗
  • ¥15 docker 运行OPEN-webui异常
  • ¥15 麒麟系统如何删除光盘刻录痕迹
  • ¥15 recipe通过gem协议传的是什么