zoukankan      html  css  js  c++  java
  • Solidity oraclize解析Json格式数据

    
    

    solidity虽然不能解析json数据但是oraclize_query可以直接处理:

    pragma solidity ^0.4.21;
    import "github.com/oraclize/ethereum-api/oraclizeAPI.sol";
    
    contract oraclizeJson is usingOraclize{
        event logString(string);
        event logUint(uint);
        string public str = strConcat("http://119.28.70.201:8792/getprice/?index=","DJI","&date=",uint2str(17623));
        
        function strConcat(){
            bytes32 queryId = oraclize_query("URL", "json(http://api.k780.com/?app=finance.globalindex&inxno=000001&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json).result.yesy_price");  //oraclize解析json数据      
        }
        
        function __callback(bytes32 myid, string result, bytes proof) public{
            emit logString(result);
            uint i = parseInt(result,3); //string to uint转换,
            emit logUint(i+1);
        }
    }

    查询获得的Json数据(http://api.k780.com/?app=finance.globalindex&inxno=000001&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json),在oraclize query中用 “.result.yesy_price” 可以取到yesy_price数据

    {
        "success": "1", 
        "result": {
            "inxid": "1", 
            "typeid": "hs", 
            "inxno": "000001", 
            "inxnm": "上证指数", 
            "yesy_price": "3136.63", 
            "open_price": "3147.05", 
            "last_price": "3131.11", 
            "change_price": "-5.52", 
            "change_price_per": "-0.18%", 
            "high_price": "3163.34", 
            "low_price": "3128.87", 
            "amplitude_price_per": "1.10%", 
            "uptime": "2018-04-04 15:34:58"
        }
    }
  • 相关阅读:
    生成器 三元表达式 列表生成式 匿名函数 内置函数
    迭代器
    叠加装饰器和补充部分
    函数的名称空间和作用域
    函数基础
    闭包函数和装饰器
    文件的处理
    第十章 程序的循环结构
    第九章 身体质量指数BMI的python实现
    第八章 程序的分支结构
  • 原文地址:https://www.cnblogs.com/huahuayu/p/8745332.html
Copyright © 2011-2022 走看看