尝试使用JavaScript在终端中记录JSON响应

问题描述

当我键入以下命令时

StreamBuilder<QuerySnapshot>(
    stream: fireStoreInstance.collection(email).snapshots(),builder: (BuildContext context,AsyncSnapshot<QuerySnapshot> snapshot) {
      
      if(!snapshot.hasData) return Text("Still Loading"); // return whatever widget you want to show while the data is being loaded.
      if(snapshot.hasError) return Text("Error"); // Return whatever widget you want to show when an error occurs.

      return ListView(
        children: snapshot.data.docs.map((DocumentSnapshot document) {
          if (snapshot.data != null && !snapshot.hasError) {
            return Card(
              child: ListTile(
                title: Text(document.data()["gameName"]),...
                ...
                ... Rest of the code

我收到以下答复

console.log("Response = " +JSON.stringify(response.body));

我要将门户网站ID保存在变量中。

我尝试使用此命令首先仅打印数据变量中的部分

Response = {"data":{"getPortalByOrganizationAliasAndSlug":{"portalId":"123f3redvq","expireAt":null,"accountId":"1","templateId":"stephendemo","arePortalDefaultsOverriden":null,"template":{"allContent":null,"digitalAssets":[],"recommendedContent":null,"allTopics":null,"recommendedTopics":null,"organizationId":"fqewf2134214","header":"","footer":"","favicon":"null","logoPath":"/img/pages/logo.png","logo":"https://dev-v3-23-dev-assets.s3.amazonaws.com/r232r/232332/3232/stephendemo/image-logo-1603086511.png","primaryColor":"undefined","secondaryColor":"#b5b3b3","labels":{"key":"key","value":"value","__typename":"Tuple"},"orgLegalName":"Stephen Carvalho","supportTextLine":"Support","supportEmailAddress":null,"termsOfService":"http://2323.com","copyright":"Stephen Carvalho","invitationDelivery":"MANUALLY","magicLink":false,"emailAndPAssword":false,"scope":"2332","searchPlaceholder":"search","inputPlaceholder":null,"orgdisplayName":"Stephen","styles":{"contentCards":{"type":"STANDARD","__typename":"ContentCardStyle"},"__typename":"TemplateStyles"},"__typename":"TemplatePortalContent"},"templateBuyerPortal":null,"driftEnabled":false,"driftConfig":null,"portalState":"enabled","portalSlug":"stephendemo","userOwnerId":"1","userOwner":{"organizationId":"oSvjLe1paYKg","firstName":"Stephen","lastName":"Carvalho","email":"stephen.omedym+stephensdemo@gmail.com","portalIds":null,"phone":null,"title":null,"__typename":"User"},"teamMembers":null,"organizationAlias":"stephensdemo","companyId":1,"organizationId":"oSvjLe1paYKg","scope":"CONTENT_PORTAL","isContentPortalv3":true,"landingPageUrl":null,"isLandingPageUrlEnabled":false,"blockedDomains":[],"exclusiveContent":{"digitalAssets":[{"id":"2","status":5,"__typename":"ExclusiveDigitalAsset"}],"__typename":"ExclusiveContentType"},"__typename":"Portal"}}}  source=console

但是我收到以下错误

let responsedata = JSON.parse(response.body.data);
 console.log(responsedata);

即使我尝试以下命令,我也会遇到相同的错误

ERRO[0002] SyntaxError: invalid character 'u' looking for beginning of value
running at parse (native)

有人可以帮助我了解如何在响应中打印变量,例如portalID的值或帐户吗?

解决方法

也许response.body已被解析。 然后JSON.stringify(response.body)再次将其转换为JSON,并将有效的json打印到控制台。

尝试在没有response.body的情况下记录JSON.stringify(),并查看它是否显示javascript对象。

如果有,则无需JSON.parse(response.body.data)。 像平常使用javascript对象一样使用它。

,

您正在尝试解析json中的值,而不是json响应主体。尝试以下代码。

let responsedata = JSON.parse(response.body).data;
console.log(responsedata);