热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么我的内部数组没有被反序列化?

如何解决《为什么我的内部数组没有被反序列化?》经验,为你挑选了1个好方法。

我有一些JSON,我想反序列化为Objects.

我试图这样做,但我只得到一些反序列化的JSON,vin和vout JSON是0或null.我究竟做错了什么?

Transaction t = JsonConvert.DeserializeObject>(json).result;

JSON:

{
    "result": {
        "hex": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0704ffff001d0104ffffffff0100f2052a0100000043410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac00000000",
        "txid": "0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098",
        "hash": "0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098",
        "size": 134,
        "version": 1,
        "locktime": 0,
        "vin": [
            {
                "coinbase": "04ffff001d0104",
                "sequence": 4294967295
            }
        ],
        "vout": [
            {
                "value": 50.00000000,
                "n": 0,
                "scriptPubKey": {
                    "asm": "0496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858ee OP_CHECKSIG",
                    "hex": "410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac",
                    "reqSigs": 1,
                    "type": "pubkey",
                    "addresses": [
                        "12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX"
                    ]
                }
            }
        ],
        "blockhash": "00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048",
        "confirmations": 563356,
        "time": 1231469665,
        "blocktime": 1231469665
    },
    "error": null,
    "id": "getrawtransaction"
}

调试器中的输出如下所示:

在此输入图像描述

我的类看起来像这样:

public class RPCResponse
{
    public T result { get; set; }
    public string error { get; set; }
    public string id { get; set; }
}


public class Transaction
{
    public string TxId { get; set; }
    public long Size { get; set; }
    public long Version { get; set; }
    public long LockTime { get; set; }
    public TransactionInputCoinbase[] Vin { get; set; }
    public TransactionOutput[] Vout { get; set; }
    public string BlockHash { get; set; }
    public long Time { get; set; }
}


public class TransactionInputCoinbase
{
    string Coinbase { get; set; }
    string Sequence { get; set; }
}

public class TransactionOutput
{
    decimal Value { get; set; }
    int N { get; set; }
    ScriptPubKey ScriptPubKey { get; set; }
}

public class ScriptPubKey
{
    string Asm { get; set; }
    string Hex { get; set; }
    long ReqSigs { get; set; }
    string Type { get; set; }
    string[] Addresses { get; set; }
}

Nkosi.. 5

所述物体缺乏公共财产

例如

public class TransactionInputCoinbase
{
    string Coinbase { get; set; } //<--NOT PUBLIC
    string Sequence { get; set; } //<--NOT PUBLIC
}

表示通过反序列化初始化时永远不会设置这些属性.

这同样适用于TransactionOutputScriptPubKey基于代码最初提供.



1> Nkosi..:

所述物体缺乏公共财产

例如

public class TransactionInputCoinbase
{
    string Coinbase { get; set; } //<--NOT PUBLIC
    string Sequence { get; set; } //<--NOT PUBLIC
}

表示通过反序列化初始化时永远不会设置这些属性.

这同样适用于TransactionOutputScriptPubKey基于代码最初提供.


推荐阅读
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
author-avatar
我非英雄丶广目无双丶_398
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有