回覆列表
  • 1 # 使用者4474692658403

    0、用Newtonsoft.Json吧,nuget install一下很開心的。

    如果你是剛學習C#,在練習,程式碼很棒了,很乾淨,閱讀起來很輕鬆。

    如果這段程式碼要用到工作中:

    1、考慮複雜度之前,首先是正確性,解析json的方法要考慮雙引號轉義(value裡面出現雙訊號)。

    2、json可以直接反序列化成一個物件,你的方法只支援key-value,侷限性很大。

    3、如果json只放一組key-value,直接 indexOf("\"" + key + "\""),然後再找value,效率應該會比三個for高一些。

    4、如果json不止一組key-value,多次遍歷字串查詢也是問題,可以考慮結果快取Dictionary。

    5、4中的Dictionary如果是某個class例項的成員,要考慮在程式不同地方傳遞這個例項,或許把json string hash一下然後存在一個靜態變數裡可以解決這個問題, private static Dictionary<hash, Dictionary<key, value>>。

    6、如果是靜態例項,那麼多執行緒時constructor/parser就要考慮加鎖了。

    7、你這段程式碼裡 index[i + 1] 之前沒有index越界檢查,如果傳入json報錯,會拋一個index blahblahblah的異常,在稍大規模的系統裡面遇到錯誤,就很難排查了。

    8、返回值有可能是null,那麼每次call這個函式之後,都要判斷是否為null,也很繁瑣,建議使用exception。

    9、逗號後面要加空格;單行的 if 要加大括號。

  • 中秋節和大豐收的關聯?
  • 醫學常識中流式細胞儀涉及的散射光訊號有哪些重要特徵?