중화사전망 - 서예자전 - Json 파일을 로컬에서 읽고 사전에 저장하려면 어떻게 해야 합니까?
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);
}
저장 ();
}