1

我在处理内部数组(变体)时遇到问题。获取类型类 java.lang.String 的对象不能用作数组

在此处输入图像描述

<cfset jsonData = deserializeJSON(httpResp.fileContent) />
    
<cfset products = jsonData.products>

<cfoutput>

    <cfloop array="#products#" index="x">   
        #x.id# - #x.handle# <br>
                    
        <cfset variants = "variants">
        
        <cfloop array="variants" index= "i">
            #i.barcode#
        </cfloop>
        
    </cfloop>    

</cfoutput>
4

2 回答 2

0

尝试使用 cfscript

<cfscript>
jsonData = deserializeJSON(httpResp.fileContent);
    
products = jsonData.products;


for (product in products) {
   writeoutput("#product.id# - #product.handle# <br>");

   for (variant in product.variants) {
     writeoutput(variant.barcode);
   }  
}
</cfscript>
于 2020-09-14T21:17:12.963 回答
0

在 RRK 的帮助下(不知道如何称赞他),我能够让它工作:

<cfset jsonData = deserializeJSON(httpResp.fileContent) />     
<cfset products = jsonData.products>
<cfoutput>  
    <cfloop array="#products#" index="x">   
        #x.id# - #x.handle# <br>
                    
        <cfset variants = "#x.variants#">           
        <cfloop array="#variants#" index= "i">
            <cfif IsDefined("i.barcode") and i.barcode is not "">
                #i.barcode# <br>
            </cfif>
        </cfloop>
        
    </cfloop>        
</cfoutput>
于 2020-09-14T22:52:16.747 回答