gpt4 book ai didi

c# - 从 JObject 中删除双大括号

转载 作者:行者123 更新时间:2023-12-04 17:31:23 26 4
gpt4 key购买 nike

我有一个包含以下内容的 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"
}}

我试过这个option , 转换 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 对象的内部表示。您不能删除双括号,因为这就是 json 在 JObject 中的表示方式。从 Json 到 Dictionary 然后再返回到 Json 的转换在上面的代码中工作正常。

obj 和 obj3 变量如下所示。

enter image description here

注意:您的示例仅适用于 string: string json .. 如果您有 strin:object,这将不起作用。

关于c# - 从 JObject 中删除双大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59345504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com