Json 데이터 구문 분석 방법: 먼저 JSON 파일을 만든 다음 클래스에 "document.h" 및 "cocos-ext.h" 헤더 파일을 포함시킨 다음 FileUtils를 통해 JSON 파일 경로를 얻습니다. Document 개체는 JSON 데이터를 구문 분석하여 최종적으로 다양한 유형의 데이터 값을 얻을 수 있습니다.
JOSN 데이터 구문 분석 프로세스는 먼저 JSON 파일을 만든 다음 포함해야 합니다. class document.h 및 cocos-ext.h 헤더 파일에 포함된 다음 FileUtils를 통해 JSON 파일 경로를 얻고 Document 객체를 통해 JSON 데이터를 구문 분석하고 마지막으로 다양한 유형의 데이터 값을 얻습니다.
JSON(JavaScript Object Notation)은 가벼운 데이터 교환 형식입니다. 사람들이 쉽게 읽고 쓸 수 있도록 하며, 기계가 구문 분석하고 생성하는 것도 용이하게 합니다. JSON은 프로그래밍 언어와 완전히 독립적인 텍스트 형식을 사용하지만 C와 유사한 언어 습관(C, C++, C#, Java, JavaScript, Perl 및 Python 등 포함)도 사용합니다. 이러한 특성으로 인해 JSON은 이상적인 데이터 교환 언어가 됩니다. .
JSON 데이터 구문 분석
예를 들어 Cocos2d.x 루트 디렉터리의 external/json 디렉터리 아래에는 JSON 관련 클래스가 있습니다. 처리 중, 여기에 헤더 파일 document.h를 사용합니다. 이 파일의 두 가지 핵심 클래스는 GenericValue와 GenericDocument가 GeneficValue를 상속합니다. GenericDocument는 문서 내용 구문 분석과 같은 문서 내용을 처리하는 데 사용됩니다. GenericValue는 주로 값 내용, 즉 문서 내부의 키-값 쌍 내용을 처리하며 키를 기반으로 값을 얻을 수 있습니다. GenericValue와 GenericDocument가 모두 다시 입력되었습니다. 따라서 유형 정의 뒤에 이름을 사용할 수 있습니다.
ypedef GenericDocument
typedef GenericValue
값이 오버로드되었습니다. 배열 아래 첨자 연산자 []이므로 이 연산자를 사용하여 JSON 파일의 키를 기반으로 값을 가져올 수 있습니다.
const GenericValue & 연산자 [] (const Ch* 이름) const{
const_cast
JSON 데이터를 구문 분석하는 방법을 보여주기 위해 예제가 사용됩니다. 단계는 다음과 같습니다.
JSON 파일 만들기# 🎜🎜## 🎜🎜#다음 콘텐츠로 프로젝트의 클래스 폴더 아래에 JSON 파일을 만듭니다. {"pets":["dog","cat"],"stuInfo":{
"stuAge":23,"stuName":"rose","birthday":"1990-01-12"},"username","tom","other":[true,30]}
#include "cocos-ext.h" #include "json/document.h"
다음을 통해 JSON 파일 경로 가져오기 FileUtils
const char* file_path = FileUtils::getInstance()->fullPathForFilename("hello.json").c_str(); log("文件路径path=%s",file_path);
문서 객체를 통해 JOSN 데이터 구문 분석 //文档对象
rapidjson::Document dl;
//获得JSON字符串内容
std::string contentStr = FileUtils::getInstance()->getStringFromFile(file_path);
//解析
dl.Parse<0>(contentStr.c_str());
//输出JSON文件的内容
printf("%s\n",contentStr.c_str());
//获取JSON中数组的方法(宠物数组)[dog,cat] const rapidjson::Value & v=d1["pets"]; for(unsigned int i=0;i<v.Size();++i){ const rapidjson::Value & val=v[i]; log("%s",val.GetString()); } //根据key获得value(学生信息)"stuInfo":{"stuAge":23,"stuName":"rose","birthday":"1990-01-12"} const rapidjson::Value & v2=d1["stuInfo"]; //获得整型值 const rapidjson::Value&val1 = v2["stuAge"]; log("val.GetString()=%d",vall.GetInt()); //获得字符串值 const rapidjson::Value&val2 = v2["stuName"]; log("val.GetString()=%s",val2.GetString()); //获得字符串值 const rapidjson::Value&val3 = v2["birthday"]; log("val.GetString()=%s",val3.GetString()); //根据key获得value(other)"other":[true,30] const rapidjson::Value&v3=d1["other"]; for(unsigned int i=0;i<v3.Size();++i){ const rapidjson::Value&val=v3[i]; if(val.IsBool()){ log("%d",val.GetBool()); } if(val.IsInt()){ log("%d",val.GetInt()); } }
위 내용은 JSON 데이터 구문 분석이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!