c# - 如果一个键具有直接从文件读取的数据(不可打印字符),如何反序列化 json 数据
问题描述
string jsondata = { "class": "MFPUTIL", "method": "MFPUtilBase64Encode", "args": { "value": "%PDF-1.4 Sharp Scanned ImagePDF%Sharp Non-Encryption3 0 obj<</Type /Page/Parent 1 0 R/Resources 4 0 R/Contents 5 0 R/MediaBox [0 0 613 790]>>endobj4 0 obj<</ProcSet [/PDF /ImageB]/XObject << /Img1 6 0 R >>>>endobj5 0 obj<</Length 27>>stream613 0 0 790 0 0 cm/Img1 Doendstreamendobj6 0 obj<</Type /XObject/Subtype /Image/Name /Img1/Filter /CCITTFaxDecode/DecodeParms << /K -1 /Columns 1704 /Rows 2196 >>/Width 1704/Height 2196/BitsPerComponent 1/ColorSpace /DeviceGray/Length 7 0 R>>stream_�������W]������}�Y���������W��_����������)�����������������������������������������!|�P!E�;!a̝��0�fC@@ h`�gNKb���@����<&�M�au�D<�;D??KDB:D\"*��?�oA�A����}&�6�;�zo����:o����+�'�m'���������W�Q��C#G���*�`C�xDX��PEx����N�F�Π�0\\�j ���=<q[c��\\ xA��a��M�m��\t��/�^�ڽ�A���Z!0������8\"?������Bg���P�`�?�^\"a�o�,6�> ����� l�PA�&��`�A�>�a�?�uG���_���a{ @0�I��dŲ�����I��؞��'݃I�>�u���{�����ޟ����5��a�������0��^���L������=��YIA����8�Z���" }
上面的代码是字符串数据,如果我们通过下面的代码反序列化就会出错。
System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, object>>(jsondata, null).
如果该字符串具有一个不可打印的值,请提供反序列化 json 的解决方案
解决方案
从 Javascript 或客户端使用以下字符串以字符串形式发送数据:
var jsondataString = JSON.stringify(jsondata);
我认为您可以使用以下方法进行转换:(我的示例)
LoginInfo objLoginInfo;
JsonSerializer serializer = new JsonSerializer();
JsonTextReader reader = new JsonTextReader(new
System.IO.StringReader(jsondataString.ToString()));
reader.SupportMultipleContent = true;
objLoginInfo = serializer.Deserialize<LoginInfo>(reader);
假设在这里我有类名 LoginInfo 我想转换我的 JSON 对象的类型,否则您可以使用它们的object
类型进行转换。
推荐阅读
- java - java中抽象类的输出问题
- reactjs - React - 循环中的多个 API 请求
- css - bootstrap DropDown 不显示任何内容
- reactjs - React JS 中是否有可能检查 iframe 中的特定元素是否具有正确的样式
- python - python将带有子列表的列表转换为字典
- mysql - SQL 查询以在 group by 语句中查找最大值
- r - 匹配r中数据框不同列中的值
- c++ - 在 C++ 中使用 TCP 套接字进行远程客户端和服务器通信
- javascript - 如何在使用javascript更改/选择选项时更改下拉选项的css背景颜色?
- c# - 使用 C# 和 Selenium 查找并单击网页上的每个链接