加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

vb.net – 如何使用json到linq在json.net中创建字典结构

发布时间:2020-12-17 07:13:35 所属栏目:百科 来源:网络整理
导读:我正在使用Json.NET来创建json的定义,其结构可能会发生变化.因此,我无法简单地序列化一个类,并使用Json到 Linq动态创建结构.我在使用JObject,JArray,JProperty等创建以下结构时遇到问题 { 'external_id':'UNIQUE_ID_222222222','firstname':'John','lastname
我正在使用Json.NET来创建json的定义,其结构可能会发生变化.因此,我无法简单地序列化一个类,并使用Json到 Linq动态创建结构.我在使用JObject,JArray,JProperty等创建以下结构时遇到问题

{
  'external_id':'UNIQUE_ID_222222222','firstname':'John','lastname':'Smith','customFields':
      {
        'custom1':'custom1 val','custom2':'custom2 val','custom3"':'custom3 val'
      }
  }

我尝试使用以下代码:

Dim json As New JArray()
Dim jsonObj As New JObject( _
            New JProperty("external_id","UNIQUE_ID_222222222"),New JProperty("firstname","John"),New JProperty("lastname","Smith"))

Dim jsonCustomFields As New JArray
Dim jsonCustomObject As New JObject

jsonCustomFields.Add(jsonCustomObject)

For Each field In CustomFieldList
    jsonCustomObject.Add(New JProperty(field.Label,field.Value))
Next    

jsonObj.Add(New JProperty("customFields",jsonCustomFields))
json.Add(jsonContrib)

但是,当我这样做时,我得到了一个Web服务不接受的不同模式

{[
  {
    "external_id": "50702","firstname": "John","lastname": "Smithson","customFields": [
      {
        "custom1":"custom1 val","custom2":"custom2 val","custom3":"custom3 val"
      }
    ]
  }
]}

我认为我应该直接向JArray添加属性,但这样做会导致运行时异常.

我看到了一个类似的模式,当您反序列化一个Dictionary(String,String)对象时,我不会真的想将自定义字段添加到字典然后反序列化它们.必须可以使用上述表示法创建它们.

解决方法

您不需要JArray,而是使用JObject

以下代码是C#,但你可以搞清楚

JObject jObject = new JObject();
jObject.Add(new JProperty("external_id","UNIQUE_ID_222222222"));
jObject.Add(new JProperty( "firstname","John" ));
jObject.Add(new JProperty( "lastname","Smith" ));

JObject customFields = new JObject();
//Your loop
customFields.Add( "custom1","custom1 val" );
customFields.Add( "custom2","custom2 val" );
customFields.Add( "custom3","custom3 val" );

jObject.Add( new JProperty( "customFields",customFields ) );

让我知道这是否有效

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读