您的位置:首页 > Web前端 > JavaScript

项目整理三.excel文件转json

2015-10-10 17:01 716 查看
excel_to_json java工程下载:https://github.com/Mr-Zhong/Excel2Json.git

项目中多语言配置中,将如下表格转成4个.json:

lng_de_or_str.json

lng_zh-Hans_or_str.json

lng_zh-Hant_or_str.json

lng_en_or_str.json



1.new project

2.将excel_to_json项目下的bin,libs,lng.xls,src文件替换掉你新建的项目中去。

3.将libs下 .jar导入

4.然后运行就可以得到对应的多语言.json文件.

5.代码

std::map<t_string,
tv_string > m_setStrRes;

void readJson(std::string jsonStr)

{

    //读取的多语言

    rapidjson::Document doc;

    if(loadLanguageRes("str.json",doc,
true))//该函数在前面的文章中《项目整理一.cfg》
    {

 m_setStrRes.clear();
       
rapidjson::Value& v_pt=doc;
       
if(v_pt.IsObject())
        {
           
for (auto it = v_pt.MemberonBegin(); it != v_pt.MemberonEnd(); ++it)
            {
               
t_string fold = it->name.GetString();

                
               
rapidjson::Value& v_fold= it->value;
               
for (auto it_key = v_fold.MemberonBegin(); it_key != v_fold.MemberonEnd(); ++it_key)
                {
                   
t_string key = it_key->name.GetString();
                   
if(it_key->value.IsArray())
                    {
                       
rapidjson::SizeType nSize = it_key->value.Size();
                       
for (rapidjson::SizeType i=0; i<nSize; ++i)
                        {
                           
addStringRes(fold, key,
MGF_Helper::json_getString(it_key->value[i])  );
                        }
                    }else
if(it_key->value.IsString())
                    {
                       
t_string v = it_key->value.GetString();
                       
addStringRes(fold, key, v  );
                    }
                }
            }
        }

}

void addStringRes(const
t_string& strFold,
const t_string& strKey,
const t_string& strV)
{
   
if(strFold == "" || strKey ==
"")
    {

        mgf_log("add string res fold or key is null");
       
return ;
    }

    
   
t_string tmpV = strV;
   
MGF_Helper::string_replace(tmpV,
"\n", "\\n");

    

    
   
t_string key = strFold+strKey;

    std::map<t_string,
tv_string >::iterator it =
m_setStrRes.find(key);
   
if(it != m_setStrRes.end())
    {
       
tv_string& v = it->second;
        v.push_back(tmpV);
    }else
    {
       
tv_string v ;
        v.push_back(tmpV);
       
m_setStrRes.insert(make_pair(key, v));
    }
}

t_string getStringRes(const
t_string& strFold,
const t_string& strKey,
const t_string& strDefault)
{
   
t_string ret;
   
if(strFold != "" && strKey !=
"")
    {
       
t_string key = strFold+strKey;
       
std::map<t_string,
tv_string >::iterator it =
m_setStrRes.find(key);
       
if(it != m_setStrRes.end())
        {
           
tv_string& v = it->second;
           
if(v.size() ==
1)
            {
                ret = v[0];
            }else
if(v.size() >
1)
            {
               
int n = MGF_Helper::rndInt(0, v.size()-1);
                ret = v[n];
            }
        }
    }
   
if(""!= ret)
    {
       
return ret;
    }else

    
   
if("" == strDefault )
    {
       
return strKey;
    }
   
return strDefault;
}

6.调用

pLab_txt->setString(getStringRes("view",
"title"));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  项目整理