【问题标题】:C# Serialize Dictionary JSONC# 序列化字典 JSON
【发布时间】:2017-05-17 19:03:20
【问题描述】:

我正在尝试使用 JSON.NET 在 C# 中序列化字典,然后在 Web 应用程序中使用它。这是我返回的格式,但无法使用它,因为我认为它的格式不正确。我尝试了以下方法:

字典序列化:

    [JsonExtensionData]
    public static Dictionary<string, object> objectDictionary = new Dictionary<string, object>();
    string parametersJSON = JsonConvert.SerializeObject(objectDictionary, Formatting.Indented);

var x = get.getData;
x.p11.Name

{
  "p11": {
  "Name": "Parameter 1",
  "Value": "1.00",
  "Unit": "m",
  "MinValue": "0.00",
  "MaxValue": "5.00",
  "Number": 11,
  "DefaultValue": "0.00"
},
  "p546": {
  "Name": "Parameter 2",
  "Value": "0.0000",
  "Unit": "Hz",
  "MinValue": "-480.000",
  "MaxValue": "480.000",
  "Number": 546,
  "DefaultValue": "0.0000"
},
  "p7": {
  "Name": "Parameter 3",
  "Value": "0.00",
  "Unit": "Amps",
  "MinValue": "0.00",
  "MaxValue": "44.00",
  "Number": 7,
  "DefaultValue": "0.00"
}}

【问题讨论】:

  • 请您编辑您的问题并向我们展示您如何尝试序列化字典。
  • 你是什么意思因为我认为它的格式不正确。你期待什么格式?
  • 我期待 JSON

标签: javascript c# json


【解决方案1】:

您的数据没有问题:

var x = JSON.parse(jsonstr);
var name = x["p11"].Name;

更多信息: 一个 Dictionary 被解析成一个关联数组 (http://www.w3schools.com/js/js_arrays.asp)

【讨论】:

  • 当我再次尝试解析时,我在 JSON.parse () 的位置 1 处得到了 JSON 中的 Unexpected token o。我在我的服务中使用了 JSON.parse。我提供的是在 JSON.parse 之后。
  • 当我尝试不再次解析时,我得到无法读取未定义的属性“名称”。当我只显示调用返回的内容时,我会得到原始问题中的内容。
  • jsonstring 是正确的,所以检查 get.getData 是否返回 undefined。
  • 当我只显示x时,我看到了上面的数据。所以我知道它正在返回一些东西。
  • hm 尝试将您的字典从 更改为
猜你喜欢
  • 2015-09-08
  • 1970-01-01
  • 1970-01-01
  • 2019-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-10
相关资源
最近更新 更多