중화사전망 - 서예자전 - Json 파일을 로컬에서 읽고 사전에 저장하려면 어떻게 해야 합니까?

Json 파일을 로컬에서 읽고 사전에 저장하려면 어떻게 해야 합니까?

Unity 는 Json 데이터를 로컬 파일 (사전) 에 저장합니다.

먼저 Json 분석 라이브러리를 가져옵니다.

둘째, 코드를 시작합니다.

[csharp] 일반 텍스트 보기

//네임 스페이스

시스템을 사용하다. Io;

시스템을 사용하다. 집합하다. 제네릭

LitJson 사용

[csharp] 일반 텍스트 보기

//관련 변수 선언:

개인 정적 문자열 mFolderName

개인 정적 문자열 mFileName

개인 정적 사전 & ltstring, string & gtDic_Value = 새 사전 & ltstring, string & gt ();

개인 정적 문자열 파일 이름 {

가져오기 {

경로로 돌아갑니다. Combine(FolderName, m filename);

}

}

개인 정적 문자열 폴더 이름 {

가져오기 {

경로로 돌아갑니다. Combine (application.persistentdatapath, mfoldername);

}

}

[csharp] 일반 텍스트 보기

//초기화 방법 필요한 경우 초기화 방법을 다시 로드할 수 있습니다.

공용 정적 void Init (문자열 pFolderName, 문자열 pFileName ){

MFolderName = pFolderName

MFileName = pFileName

Dic_Value 입니다. Clear ();

Read ();

}

[csharp] 일반 텍스트 보기

//파일을 읽고 JSON 데이터를 사전에 로드합니다.

개인 정적 void Read(){

만약 (! 디렉토리。 있음 (폴더 이름) {

디렉토리。 CreateDirectory (폴더 이름);

}

인 경우 (파일. 존재 (파일 이름) {

FileStream fs = 새 파일 스트림 (파일 이름, 파일 모드. 열기);

StreamReader Sr = 새로운 streamreader (fs);

JsonData 값 = JsonMapper 입니다. Toobject (sr.read to end ());

Foreach(var key in values). 열쇠) {

Dic_Value 입니다. Add (키, values [키]. ToString()););

}

If(fs! = null) {

Fs. 닫기 ();

}

If(Sr! = null) {

Sr.close ();

}

}

}

[csharp] 일반 텍스트 보기

//사전 데이터를 JSON 으로 변환하고 로컬 파일에 저장합니다.

개인 정적 void Save(){

String values = JsonMapper 입니다. To JSON (DIC _ value);

디버깅. 로그 (값);

만약 (! 디렉토리。 있음 (폴더 이름) {

디렉토리。 CreateDirectory (폴더 이름);

}

FileStream file = 새로운 FileStream(FileName, FileMode). 만들기);

Byte [] BTS = 시스템. Text.Encoding.UTF8.GetBytes (값);

서류. 쓰기 (BTS, 0, BTS. 길이);

만약 (파일! = null) {

서류. 닫기 ();

}

}

이로써 간단한 저축 방법은 기본적으로 완성되었다.

셋째, 예제를 사용하십시오.

읽기 및 쓰기 문자열을 예로 들어 보겠습니다.

[csharp] 일반 텍스트 보기

//키 값이 현재 있는지 여부를 결정합니다.

공용 정적 bool HasKey (문자열 pKey ){

Dic_Value 를 반환합니다. Contains key (pkey);

}

[csharp] 일반 텍스트 보기

//문자열 값 읽기

공용 정적 문자열 GetString(string pKey ){

If (해키 (키)) {

Returndic _ value [pkey];

} 그렇지 않으면 {

문자열을 반환합니다. 비어 있습니다.

}

}

[csharp] 일반 텍스트 보기

//문자열 값 저장

공용 정적 void 세트 문자열 (string pkey, string pValue ){

If (해키 (키)) {

Dic _ value [pkey] = pvalue;

} 그렇지 않으면 {

Dic_Value 입니다. Add(pKey, pvalue);

}

저장 ();

}