用 C 寫個方法解析簡單的 JSON 字串有哪些思路?

時間 2021-05-30 17:40:34

1樓:輝鴨蛋

很簡潔的乙個單檔案,作者也在知乎。

看看作者寫的思路:

scott.cgi:「MojoUnityJson」C#實現超級簡單和高效的JSON解析器

2樓:Ivony

不考慮\"真的大丈夫?

我建議提問者還是老老實實的用Newtonsoft.Json,你自己瞎搞的要能完全正確的解析json說不定效能還不如你所認為的那個很重的東西……

3樓:譚九鼎

我在 .NET 框架中沒有找到解析 JSON 字串的簡單方法有了:https://

docs.microsoft.com/zh-cn/dotnet/api/system.text.json.NET Core 3.0 的新增功能

4樓:

沒有人推薦一下milo yip的教程嗎。雖然是用c語言寫的,作為參考吧,寫的很仔細

5樓:

網上搜尋一下「編譯原理」的相關知識,

了解其中「詞法分析」,「語法分析」的部分,再搜一下json的正規化,(或者自己寫乙個簡化版的,)可以做乙個簡單的比如「自頂向下」語法分析器。

就當是補課+練習。

具體做專案時,建議用現成的庫。因為自己做的投入產出不好,(考慮使用頻率,效能提高,維護成本等等)

6樓:白起

正常的狀態機,弄一堆switch case。以前伺服器的同事發給我一堆json資料,無知的我不知道這是json,我心裡想:「你考驗我呢?」,花了乙個多小時寫了個解析器。

但是題主這樣寫是不靠譜的,沒法準確解析json。自己造輪子要先理解基本原理。每次吃進乙個字元,根據字元是什麼來決定跳轉到哪個狀態。你要畫乙個狀態機,弄清楚狀態之間如何跳轉。

7樓:sullix

我的指令碼引擎裡面是先把字串轉換成小物件,物件型別有比如數字,名稱,操作符,特殊符號逗號括號等,然後用狀態機去處理這些小物件就很簡單了,什麼時候該括號,什麼時候該名稱,什麼時候遇到括號內的括號怎麼處理等等。

不過你要知道自己寫的東西,穩定和效能都不如三方庫,建議還是聽輪子哥的話,不要自己造輪子

8樓:

搞個類[DataContractpublic class errorDataMemberpublic string code{ get; setDataMemberpublic string message{ get; set

加個引用

調調庫DataContractJsonSerializerserializer

=new

DataContractJsonSerializer(typeof(T

));var

result=(

T)serializer

.ReadObject

(stream);

C語言,用陣列定義乙個字串,那這個字串是怎麼儲存在這個陣列中的呢?

the gc 對於scanf的 s的解釋如下 Matches a sequence of non white space characters the nextpointer must be a pointer to the initial element of acharacter array t...

java中,字串比較的equals方法需要自己編嗎?

樂享生活522 字串比較的方法不需要自己實現,可使用apache提供的StringUtils類中的equals方法,需要引入commons lang3 3.5.jar 具體實現方式及相關注釋如下 lt p Compares two CharSequences,returning if they re...

C 中,使用範圍for語句改變字串中的字元時,引用為何能重新繫結?

tearshark 又乙個深受只有引用語義的語言毒害的青年。不過,即便只有引用語義的語言,內建的int之類的也是值語義啊。總之,先學c c 以外的語言,就是毒害無窮。連最基本的計算機工作方式都是稀里糊塗的。也就別指望能做出什麼貢獻了。碼農到30歲,回家賣白菜去吧! sin1080 C 的range ...