ColdFusion : String : 从 2 点内获取价格

ColdFusion : String : Get Price From Inside 2 Points

我正在玩 NOMICS API 并获取字符串中的数据。但我无法获得价格:

这是来自 METHOD=GET 的字符串的一部分 - 工作正常..

"currency":"SHIB","platform_currency":"ETH","price":"0.000026199726","price_date":"2022-02-06T00:00:00Z","price_timestamp":"

我知道,"price":" 是开头,然后 "," 是结尾... 但我似乎无法从中间获得 0.000026199726,这正是我所需要的。

<CFHTTP METHOD="Get"
     URL="https://api.nomics.com/v1/currencies/ticker?key=#apikey#&ids=SHIB">

<cfset feedData = cfhttp.filecontent>

<cfset startpos = findNoCase(',"price":"', feedData)>
<cfset endpos = findNoCase('",', feedData)>
<cfset getdata = mid(feeddata,startpos,endpos-startpos)

<b>#getdata#</b> Errors as neg number.

函数Mid的参数3的值,现在是-191,必须是非负整数

这一定是一件容易的事。我一定是用错了字符串函数?

编辑:想通了 - 它正在寻找“,”,但它们太多了,它找到了第一个,这使事情变得消极 - 所以修复是找到之后的结构。 ","price_date"在.

之后
      <cfset string = cfhttp.filecontent>
      <cfset startpos = findNoCase('price":"', string)>
      <cfset endpos = findNoCase('","price_date"', string)>
      <cfset detdata = mid(string,startpos,endpos-startpos)>

      <cfoutput>
          start: #startpos#<br>
          end: #endpos#<br>
          data: #detdata#<br>
          trimmed data: #trim(detdata)#<br>
          trimmed data: 
          <br><b>#removechars(detdata,1,8)#</b><br><br>
      </cfoutput>

我也会查看 JSON 示例。也许这将有助于多次拉动。

各位大侠:非常感谢

      <CFHTTP METHOD="Get"
URL="https://api.nomics.com/v1/currencies/ticker?key=#apikey#&ids=SHIB,BTC">

      <cfset output = cfhttp.filecontent>
      <cfoutput>
      <cfset arrayOfStructs = deserializeJson(output)>
      <cfloop array="#arrayOfStructs#" index="getpr">
            <cfset Price = getpr.price />
            <cfset TKID = getpr.id />
            #tkid#: #price#<br>
      </cfloop>
      </cfoutput>

吐出:

比特币:43963.45841296

SHIB: 0.000033272664

归功于Andrea/SOS

  <CFHTTP METHOD="Get"
      URL="https://api.nomics.com/v1/currencies/ticker?key=#apikey#&ids=SHIB,BTC">

  <cfset output = cfhttp.filecontent>
  <cfoutput>
  <cfset arrayOfStructs = deserializeJson(output)>
  <cfloop array="#arrayOfStructs#" index="getpr">
        <cfset Price = getpr.price />
        <cfset TKID = getpr.id />
        #tkid#: #price#<br>
  </cfloop>
  </cfoutput>