【问题标题】:Jsonix Element and value restrictionJsonix 元素和值限制
【发布时间】:2023-03-13 18:15:02
【问题描述】:

我正在使用 JSONIX 来编组和解组从其他系统接收到的 XML。我要编组和解组的 XML

<charge> 392.2361
<formatted>392.24</formatted>
</charge>

我仍然不知道如何解组值“392.2361”。有任何想法的人吗?提前致谢

【问题讨论】:

    标签: marshalling jsonix


    【解决方案1】:

    您需要的是mixed property

    {
        type: 'classInfo',
        localName: 'MyType',
        propertyInfos: [{
            type: 'elementRef',
            name: 'charge',
            elementName: 'formatted',
            collection : true,
            mixed: true
        }]
    }
    

    您将获得的价值类似于:

    [ '392.2361', { name: { localPart: 'formatted' }, value: '392.24' }]
    

    未经测试,无法保证,但您明白了。

    【讨论】:

      【解决方案2】:

      终于正确应用了。谢谢#lexicore

      这是我对混合属性的实现

      {
           type: 'classInfo',
           localName: 'ItemizedForDateType', //<date>
           propertyInfos:[
                  {
                      type: 'element',
                      name: 'priceTextType',
                      elementName: 'price',
                      typeInfo: 'DOTWXML.PriceFormattedType'
                  },
                  {
                      type: 'element',
                      name: 'priceMinSellTextType',
                      elementName: 'priceMinimumSelling',
                      typeInfo: 'DOTWXML.PriceFormattedType'
                  }
          ]
      },
      {
           type: 'classInfo',
           localName: 'PriceFormattedType',                           
           propertyInfos:[
              {
                  type: 'elementRef',
                  name: 'charge',
                  elementName: 'formatted',
                  collection : true,
                  mixed: true
              },
           ]
      }
      

      unmarshall 的结果如下:

          "itemizedForDateType": [
            {
              "TYPE_NAME": "DOTWXML.ItemizedForDateType",
              "priceTextType": {
                "TYPE_NAME": "DOTWXML.PriceFormattedType",
                "charge": [
                  "236.8738",
                  {
                    "name": {
                      "namespaceURI": "",
                      "localPart": "formatted",
                      "prefix": "",
                      "key": "formatted",
                      "string": "formatted"
                    },
                    "value": "236.87"
                  }
                ]
              }
            }
          ]
      

      删除“collection : true”是个错误,解组后得到“{}”。一旦我意识到“collection : true”是必需的,就把它放在上下文中,一切都被正确地解组了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-08
        • 1970-01-01
        • 1970-01-01
        • 2021-12-21
        • 1970-01-01
        • 1970-01-01
        • 2014-02-06
        相关资源
        最近更新 更多