[英]Remove double curly brackets from JObject
我有一個包含以下內容的 XYZ.Json 文件。
{
"ABC": "Account",
"CDE": "Balance",
"EFG": "Enquiry"
}
使用以下代碼,我試圖從這個 Json 讀取並返回 JObject,但在 json 結構的開頭和結尾添加了額外的花括號。
JObject obj1 = JObject.Parse(System.IO.File.ReadAllText(@".\XYZ\install\XYZ.json));
對象 1:
{{
"ABC": "Account",
"CDE": "Balance",
"EFG": "Enquiry"
}}
我試過這個選項,轉換Jobject.Tostring()
但它沒有用。
也試過這段代碼,但我仍然看到同樣的問題。
Dictionary<string, string> dict = new Dictionary<string, string>();
JObject obj = JObject.Parse(System.IO.File.ReadAllText(@".\XYZ\install\XYZ.json));
foreach (JProperty prop in obj.Properties())
{
dict.Add(prop.Name, obj.GetValue(prop.Name).ToObject<string>());
};
JObject obj3 = JObject.Parse(JsonConvert.SerializeObject(dict));
目標3:
{{
"ABC": "Account",
"CDE": "Balance",
"EFG": "Enquiry"
}}
請建議是否有任何其他解決方案。
,您必須先將字典轉換為json格式
JObject obj = JObject.Parse(File.ReadAllText(@"C:\temp\test.txt"));
Dictionary<string, string> dict = new Dictionary<string, string>();
foreach (JProperty prop in obj.Properties())
{
dict.Add(prop.Name, obj.GetValue(prop.Name).ToObject<string>());
};
var entries = dict.Select(d => string.Format($@"""{d.Key}"": ""{d.Value}"""));
string convertedString = "{" + string.Join(",", entries) + "}";
JObject obj3 = JObject.Parse(convertedString);
obj3 將為您提供與 obj 相同的對象。
雙花括號是Json 對象的內部表示。 您不能刪除雙括號,因為這就是 JObject 中 json 的表示方式。 在上面的代碼中,從 Json 轉換為 Dictionary 然后再轉換回 Json 工作正常。
obj 和 obj3 變量都如下所示。
注意:您的示例僅適用於 string: string json .. 如果您有 strin:object,這將不起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.