我有一個字符串,如:如何在ColdFusion中從字符串中提取子字符串?
oauth_token=xxxxxxxxxxx&oauth_token_secret=xxxxxxxxxxx&oauth_callback_confirmed=true
我想這些值提取到三個變量。
您能否建議ColdFusion中最簡單的方法?
我有一個字符串,如:如何在ColdFusion中從字符串中提取子字符串?
oauth_token=xxxxxxxxxxx&oauth_token_secret=xxxxxxxxxxx&oauth_callback_confirmed=true
我想這些值提取到三個變量。
您能否建議ColdFusion中最簡單的方法?
@Dan Bracuk很近,這會做你想做的。
<cfset myString = "oauth_token=xxxxxxxxxxx&oauth_token_secret=xxxxxxxxxxx&oauth_callback_confirmed=true">
<cfloop list="#myString#" index="pair" delimiters="&">
<cfset myStruct[ListFirst(pair, "=")] = ListLast(pair, "=")>
</cfloop>
<cfdump var="#myStruct#">
我會嘗試這樣的事:
<cfloop
list = "oauth_token=xxxxxxx&oauth_token_secret=xxxxx&oauth_callback_confirmed=true"
index="pair" delimiter="&">
<cfset ListFirst(pair, "=") = ListLast(pair, "=")>
</cfloop>
我不知道,如果它的工作,但它是值得一試。
我收到錯誤'標籤cfloop不允許使用屬性分隔符' – user3270746 2014-11-06 11:16:58
@ user3270746 - 屬性名稱是「分隔符」(複數)而不是「分隔符」(單數)。 – Leigh 2014-11-06 17:56:23
還有另一種替代接受的解決方案:
<cfset t = "oauth_token=abc&oauth_token_secret=def&oauth_callback_confirmed=true">
<cfset oauth_token = ListGetAt(ListGetAt(t,1,"&"),2,"=")>
<cfset oauth_token_secret = ListGetAt(ListGetAt(t,2,"&"),2,"=")>
<cfset oauth_callback_confirmed = ListGetAt(ListGetAt(t,3,"&"),2,"=")>
值得注意的是,這確實假定返回的字符串總是以相同的順序 – 2014-11-06 11:28:12
@JohnWhish,true。我沒有考慮以其他順序返回字符串的可能性。 – 2014-11-06 11:31:47
@Tushar Bhaware:不錯................. Thanku ......... – user3270746 2014-11-06 11:32:31
我猜你正在試圖通過Facebook,Twitter或谷歌來實現認證。通常這些以JSON格式的服務響應。您可能想要查看反序列化JSON。您可以反序列化您的http.filecontent並使用該結構來獲取所有三個變量的值。 – 2014-11-06 10:54:20
@ Tushar Bhaware:我正在嘗試與Xero集成,但我以字符串形式獲取文件內容。 – user3270746 2014-11-06 11:08:10