我有了標識符在C#無效,這樣的JSON字符串(不是由我創建):如何序列化這種json?
"OBSBasic.SelectScene": [],
"libobs.hide_scene_item.Captura de Janela": [],
和
"push-to-mute-delay": 0,
和兒子...
here's完整的json。
我的問題是:
我如何可以轉換成JSON的一種解釋的,這樣我可以喜歡:
dic["sources"][0]["settings"]["window"] = "XXXX";
我不肯定知道所有可能的屬性名稱是JSON文件可以有,所以我想真正將其轉換爲基於數組的方法,以便我可以從密鑰訪問它,而不是來自用於反序列化的對象的屬性名稱,如果新屬性最終會失敗例如,生成。
我嘗試沒有成功是這樣的:
dynamic data = JsonConvert.DeserializeObject(jsonstr);
data.sources.settings.window = "xxxx";
這導致運行時異常:
拋出異常: 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' 在 Microsoft.CSharp .dll拋出的異常: 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'in System.Core.dll
我沒有其他代碼顯示,因爲我被卡在字典看起來像在DeserializeObject<T>()
方法中傳遞的樣子。我想將該JSON對象序列化回字符串。
什麼是例外?編輯你的問題。 –
'dic [「sources」] [「settings」] [「window」] =「XXXX」;' - sources是一個數組,不是字典。你需要類似'dic [「sources」] [0] [「settings」] [「window」] =「XXXX」;'AFAIK。 – yaakov
@EliArbel編輯 – Jack