作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含以下内容的 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 变量如下所示。
注意:您的示例仅适用于 string: string json .. 如果您有 strin:object,这将不起作用。
关于c# - 从 JObject 中删除双大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59345504/
我是一名优秀的程序员,十分优秀!