4

私は過去にJSONデータを扱ったことがあります. 返されるデータが以前に見たものとは多少異なるように見えるという問題に遭遇しましたが、それに一致する例が見つかりません。

(API 経由で) 返されるデータの例を次に示します。

{"domain.co.uk":{"status":"available","classkey":"thirdleveldotuk"},"domain.net":{"status":"available","classkey":"dotnet"},"domain.com":{"status":"available","classkey":"domcno"}}

私のフロントエンドでは、次のようなものを返す必要があります -

  • domain.co.uk - 利用可能
  • domain.net - 利用可能
  • domain.com - 利用可能

「domain.com」などの値は常に変化するため、通常のように名前をマッピングすることはできません (ただし、常に 3 つの「行」が返されます)。

所有しているすべての CF ブックを確認し、オンラインの CF ドキュメントを読みましたが、これをどこから始めればよいかまったくわかりません。

ポインタは大歓迎です!

4

2 に答える 2

10

これを deserializeJSON(data) で実行すると、ネストされた構造を持つ構造になってしまうことがわかります。したがって、構造体をループしてキーを取得し、そのキーのステータスを取得できます。JSON 用語では、JSON オブジェクトにはネストされたオブジェクトがあります。

<cfset data = deserializeJSON(apiData) />
<cfset formattedData = [] />
<cfset tmp = {} />

<cfloop collection=#data# item="domain">
    <cfset tmp.domain = domain />
    <cfset tmp.status = data[domain]["status"] />
    <cfset arrayAppend(formattedData,duplicate(tmp)) />
</cfloop>

<cfdump var=#formattedData# />
于 2013-04-05T17:50:46.187 に答える