#include <experimental/filesystem>
#include "core/utils/cjson/CJsonObject.hpp"
#include <fstream>
int main(){
std::map<std::string,std::string> jsonLayerName;
std::vector<std::string> target_name;
target_name.push_back("aisp_3d.json");
std::function<bool(int)> readJson =[&jsonLayerName,&target_name](int index){
namespace fs = std::experimental::filesystem;
std::string jsonFilePath;
bool json_flag = false;
fs::path currentPath = fs:: current_path();
std::string file_extension = ".json";
for (const auto& entry : fs::directory_iterator(currentPath)) {
if (entry.path().extension() == file_extension) {
jsonFilePath = std::move(entry.path());
json_flag = true;
break;
}
}
if(!json_flag)
return false;
ifstream infile;
infile.open(jsonFilePath.data());
assert(infile.is_open());
std::string str_tmp;
char c;
while (!infile.eof())
{
infile >> c;
str_tmp += c;
}
infile.close();
neb::CJsonObject oJson(str_tmp);
std::string model_name;
oJson.Get("model_name",model_name);
for (int i =0;i<oJson["format_change"].GetArraySize();i++){
std::string layer_name;
std::string data_format;
oJson["format_change"][i].Get("layer_name",layer_name);
oJson["format_change"][i].Get("data_format",data_format);
jsonLayerName.insert(pair<std::string,std::string>(layer_name,data_format));
}
fs::path pathObj(jsonFilePath);
return pathObj.filename().string() == target_name[index];
};
if(readJson(0)){
for(const auto& node_name : jsonLayerName){
if(node->name() == node_name.first){
if(node_name.second == "NC32_IN_NHWC_OUT")
return NC32_IN_NHWC_OUT;
if(node_name.second == "NHWC_IN_NC32_OUT")
return NHWC_IN_NC32_OUT;
if(node_name.second == "NC32_IN_NC32_OUT")
return NC32_IN_NC32_OUT;
if(node_name.second == "NHWC_IN_NHWC_OUT")
return NHWC_IN_NHWC_OUT;
}
}
}
std::cout << "Current path: " << currentPath << std::endl;
return 0;
}
c++使用CJsonObject读取json文件
发布时间 2023-11-27 11:15:59作者: WEIWEI1095