zoukankan      html  css  js  c++  java
  • JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式 研究 (二)

    这次我们把JSON格式在复杂一点:

    比如这样的格式:

    {"":[
    {"":"","":""},
    {"":"","":""},
    {"":"","":""}]}


    具体数据:

     {"people":[
    {"Name":"Eagle","Age":"18","Email":"eaglezzb@gmail.com"},
    {"Name":"Porter","Age":"18","Email":"pDDDr@gmail.com"},
    {"Name":"EVAL","Age":"18","Email":"EDDa@gmail.com"}]}


    下面是完整的编译代码:

    有这几个,基本上什么数据都可以用起来了

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////

     #include "stdafx.h"
    #include <iostream>
    #include <fstream> 
    #include <string>
    #include <Windows.h>
    #include "json.h"




    TCHAR szFullConfName[2*MAX_PATH + 1] = {0};


    void saveStringToFile(void)
    {
    TCHAR szFilePath[MAX_PATH + 1]; 
    GetModuleFileName(NULL, szFilePath, MAX_PATH); 
    (_tcsrchr(szFilePath, _T('\\')))[1] = 0;//删除文件名,只获得路径


    TCHAR str_url[2*MAX_PATH + 1] = {0};

    lstrcat(str_url, szFilePath);
    lstrcat(str_url, _T("msg.json") );
    //only for log
    lstrcat(szFullConfName, str_url);
    //


    }


    int main(int argc, char* argv[])
    {
    //解析json
    //--======================Reader file====================================--
    // Reader file and show Json
    saveStringToFile();


    Json::Value jsReadValue;
    std::ifstream in(szFullConfName);
    std::string szReadstr;
    std::string szReadmsg;


    if(in.is_open())
    {
    while(in>>szReadstr)
    szReadmsg += szReadstr;
    }


    Json::Reader jsReader;


    int ret = jsReader.parse(szReadmsg,jsReadValue);


    if(ret)


    /**
    {"":[
    {"":"","":""},
    {"":"","":""},
    {"":"","":""}]}
    **/
    Json::Value jsArrayReaderValue ;
    jsArrayReaderValue = jsReadValue["people"];
    int iASize =  jsArrayReaderValue.size();
    for ( int i=0; i < iASize;i++ )
    {
    std::string szName =jsArrayReaderValue[i]["Name"].asString();
    std::string szAge =jsArrayReaderValue[i]["Age"].asString();
    std::string szEmail =jsArrayReaderValue[i]["Email"].asString();

    std::cout<<"Name:"<<szName<<" Age: "<<szAge<<"E-Mail:  "<<szEmail<< std::endl;
    }




    }



    in.close();
    return 0;
    }

  • 相关阅读:
    每天一个linux命令:head(15)
    用设计模式来替代if-else
    每天一个linux命令:less(14)
    每天一个linux命令:more(13)
    每天一个linux命令:nl(12)
    CDN是什么鬼
    ajax跨域问题
    PDO和MySQLi区别与选择?
    php 依赖注入 和 控制反转 php设计模式
    理解 PHP 依赖注入
  • 原文地址:https://www.cnblogs.com/eaglezzb/p/4176532.html
Copyright © 2011-2022 走看看