wordpress的url電腦優(yōu)化軟件哪個好用
提示:文章有錯誤的地方,還望諸位大神不吝指教!
文章目錄
- 前言
- 一、Json是什么?
- 二、創(chuàng)建Json文件
- 1.在線編輯并轉(zhuǎn)實體類(C#)
- 2.Json文件
- 三、解析Json并使用
- 四、報錯:JsonError:JsonException: Invalid character ’’ in input string
- 總結(jié)
前言
今天聊一聊怎么使用Json,從怎么編輯Json內(nèi)容到代碼里得到并使用Json。
手把手教學(xué),看完本章節(jié)即會完整的使用流程!
一、Json是什么?
JavaScript Object Notation, JS對象簡譜)是一種輕量級的數(shù)據(jù)交換格式,主打一個便捷好用。
平時用到比較多的都是解析Json和往Json中添加數(shù)據(jù)、修改數(shù)據(jù)等。
序列化:將Java對象數(shù)據(jù)轉(zhuǎn)換成JSON字符串?dāng)?shù)據(jù)
反序列化:將JSON字符串?dāng)?shù)據(jù)轉(zhuǎn)換成Java對象數(shù)據(jù)
二、創(chuàng)建Json文件
1.在線編輯并轉(zhuǎn)實體類(C#)
鏈接: JSON轉(zhuǎn)C#實體類
打開這個網(wǎng)站進行編輯即可,不知道格式點擊”來個Json試試“,就會出現(xiàn)實例Json
編輯好后點擊“生成實體類”,復(fù)制到C#類里就可以了
得到C#類:Root(類名是默認(rèn)這個,可以修改)
2.Json文件
鏈接: Json在線編輯
Json文件:就是你編輯的這個,放在特殊文件夾里:StreamingAssets
得到Json文件:content.json(文件名是默認(rèn)這個,可以修改)
三、解析Json并使用
注意點:類名和Json名 必須和你上面步驟創(chuàng)建的分別保持一致
using System.Collections;
using UnityEngine;
using UnityEngine.Networking;
using Twq;
using LitJson;
/// <summary>
/// Json管理
/// </summary>
public class JsonManage : SingletonMono<JsonManage>
{protected override void Awake(){base.Awake();StartCoroutine(GetInfoDataJson01());}/// <summary>/// /// </summary>/// <returns></returns>private IEnumerator GetInfoDataJson01(){UnityWebRequest webRequest = UnityWebRequest.Get(Application.streamingAssetsPath + "/Json/PhoneticText.json");yield return webRequest.SendWebRequest();if (webRequest.isHttpError || webRequest.isNetworkError)Debug.Log(webRequest.error);else{Root test = LitJson.JsonMapper.ToObject<Root>(webRequest.downloadHandler.text);Debug.Log("json=" + test.PhoneticText[0].TaskIntroduction);//全局變量 存儲GlobalVariable.PhoneticTextJson= LitJson.JsonMapper.ToObject<Root>(webRequest.downloadHandler.text);Debug.Log("json=" + GlobalVariable.PhoneticTextJson.PhoneticText[0].TaskIntroduction);}}IEnumerator GetData(){UnityWebRequest request = UnityWebRequest.Get("http://www.wotimadeyebuzhidudizhishisha.com");yield return request.SendWebRequest();if (request.isNetworkError || request.isHttpError){Debug.Log(request.error);}else{Debug.Log(request.downloadHandler.text);JsonData objs = JsonMapper.ToObject(System.Text.Encoding.UTF8.GetString(request.downloadHandler.data, 3, request.downloadHandler.data.Length - 3));Debug.Log(objs.ToJson());}}
}
四、報錯:JsonError:JsonException: Invalid character ’’ in input string
單看報錯信息基本上都是Json 的錯誤,我么可能會去查找json格式的錯誤,但是如果你照做了。
你會發(fā)現(xiàn),json文本格式?jīng)]有錯誤。
錯誤的真正原因是UTF-8BOM。
BOM——Byte Order Mark,就是字節(jié)序標(biāo)記UTF-8文件中放置BOM主要是微軟的習(xí)慣,但是放在別的系統(tǒng)上會出現(xiàn)問題。不含BOM的UTF-8才是標(biāo)準(zhǔn)形式,UTF-8不需要BOM帶BOM的UTF-8文件的開頭會有U+FEFF,所以新建的空文件會有3字節(jié)的大小。
出現(xiàn)這種原因是我使用代碼去創(chuàng)建Json文件導(dǎo)致。
為了避免這種格式的文檔我們可以通過設(shè)置UTF8Encoding 的構(gòu)造函數(shù)參數(shù),為false使用無BOM格式的文檔。
簡單來說創(chuàng)建Json文件的時候注意,別自己隨意創(chuàng)建,然后修改后綴。
我提供一個正確的Json文件,你們替換里面的內(nèi)容即可:鏈接: 正確的Json文件
總結(jié)
好記性不如爛筆頭!