C# / Json.net / 如何反序列化消息?

发布于 2024-11-05 03:23:33 字数 1563 浏览 1 评论 0原文

请帮助我下一步需要做什么?我需要将此消息放在他们的专用字符串中 但我不知道该怎么做

,使用字典怎么样?

我收到的消息是这样的..它位于一个名为 sServerResponse 的字符串中,

{"pcname": "Kat", "pause": [], "ip": "192.168.1.100", "paused": 0, "services": [], "session": "", "shop": [], "end": 0, "used": 0, "start": 0, "timeup": 0, "follow": "sui", "consq": {"1": "basic", "3": "rounding", "2": "minimum"}, "stas": 0, "price": 0, "pc_status": 1, "account_details": {"3": "Member", "2": "Staff/Member", "4": "Timecode"}, "msg": "Connection/Update accepted.", "mac": "00112233445", "others": [], "remarks": "", "ticker": {"units": 1}, "fixed_time": [], "account": "", "pause_tmp": {"s": 0, "e": 0}, "ver": {}, "status_details": {"1": "Idle", "0": "Offline", "5": "Fixed", "4": "Open", "7": "Mem", "6": "Extended", "8": "Timecode"}, "cmd": "nothing", "load": 0, "deposit": [], "data": {"fixed": [], "open": 0}, "restirctions": {"start_button": 0, "keys": [{"ctrl-esc": 0}, {"alt-tab": 0}], "mouse": 1, "drives": [{"c": 0}, {"d": 0}], "desktop": 0, "task_manager": 0, "keyboard": 1, "taskbar": 0, "control_panel": 0}}

请指导我..我做过无数的谷歌和我读过的主题。 json.net 上的示例甚至无法工作

编辑/更新:

我现在正在尝试这个

List<WrapperReader> datas;

 datas = new JavaScriptSerializer(new SimpleTypeResolver()).Deserialize<List<WrapperReader>>(jsonInput);

}

但是数据是空的,这里可能是什么问题?

更新2

我有点明白是什么导致了

它的类出错。

如果我要接收一个字符串数组。然后在我的班级中我必须将其声明为数组 关于日期的小数和日期也是如此

。如果我要收到一个日期。我如何声明它才能包含日期?

我要完成编码,看看它是否真的是罪魁祸首

please help me on what i need to do next? i need this message to be inside their dedicated strings
but i got no idea how to do it

also how about using a dictionary?

the message that i receive is this.. its inside a string called sServerResponse

{"pcname": "Kat", "pause": [], "ip": "192.168.1.100", "paused": 0, "services": [], "session": "", "shop": [], "end": 0, "used": 0, "start": 0, "timeup": 0, "follow": "sui", "consq": {"1": "basic", "3": "rounding", "2": "minimum"}, "stas": 0, "price": 0, "pc_status": 1, "account_details": {"3": "Member", "2": "Staff/Member", "4": "Timecode"}, "msg": "Connection/Update accepted.", "mac": "00112233445", "others": [], "remarks": "", "ticker": {"units": 1}, "fixed_time": [], "account": "", "pause_tmp": {"s": 0, "e": 0}, "ver": {}, "status_details": {"1": "Idle", "0": "Offline", "5": "Fixed", "4": "Open", "7": "Mem", "6": "Extended", "8": "Timecode"}, "cmd": "nothing", "load": 0, "deposit": [], "data": {"fixed": [], "open": 0}, "restirctions": {"start_button": 0, "keys": [{"ctrl-esc": 0}, {"alt-tab": 0}], "mouse": 1, "drives": [{"c": 0}, {"d": 0}], "desktop": 0, "task_manager": 0, "keyboard": 1, "taskbar": 0, "control_panel": 0}}

please guide me.. countless googles ive made and topics i have read.
the sample on json.net didnt even work

EDIT/UPDATE:

i'm now trying this one

List<WrapperReader> datas;

 datas = new JavaScriptSerializer(new SimpleTypeResolver()).Deserialize<List<WrapperReader>>(jsonInput);

}

but datas is empty, what may be the problem here?

UPDATE 2

i kind of figure whats making it to error

its the class.

if im going to receive a array of strings . then inside my class i must declare it as array to
same goes to decimals and dates

about dates.. if im going to receive a date. how do i declare it so it can contain a date?

im going to finish the coding see if its really the culprit

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吃不饱 2024-11-12 03:23:33

你好
我为你写了一个基本的例子。
您可以在没有 Json.NET 库的情况下使用。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Script.Serialization;

namespace ConsoleApplication1
{
public class Customer
{
    public int CustomerID { get; set; }
    public string CustomerName { get; set; }
    public string CustomerSurname { get; set; }

    public override string ToString()
    {
        return this.CustomerID + " " + this.CustomerName + " " + this.CustomerSurname;
    }
}

 class Program
 {
    static void Main(string[] args)
    {
        string JSonData = @"[
        {
             ""CustomerID"": ""1"",
             ""CustomerName"": ""Mehmet"",
             ""CustomerSurname"": ""Tasköprü""
        },
        {
             ""CustomerID"": ""2"",
             ""CustomerName"": ""Cin"",
             ""CustomerSurname"": ""Ali""
        },
        {
             ""CustomerID"": ""3"",
             ""CustomerName"": ""Temel"",
             ""CustomerSurname"": ""Reis""
        }]";

        IList<Customer> iListData = new JavaScriptSerializer().Deserialize<IList<Customer>>(JSonData);

        foreach (var item in iListData)
            Console.WriteLine(item.ToString());

        Console.Read();
    }
}

}

Hi
I wrote a basic example for you.
You can use without Json.NET library.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Script.Serialization;

namespace ConsoleApplication1
{
public class Customer
{
    public int CustomerID { get; set; }
    public string CustomerName { get; set; }
    public string CustomerSurname { get; set; }

    public override string ToString()
    {
        return this.CustomerID + " " + this.CustomerName + " " + this.CustomerSurname;
    }
}

 class Program
 {
    static void Main(string[] args)
    {
        string JSonData = @"[
        {
             ""CustomerID"": ""1"",
             ""CustomerName"": ""Mehmet"",
             ""CustomerSurname"": ""Tasköprü""
        },
        {
             ""CustomerID"": ""2"",
             ""CustomerName"": ""Cin"",
             ""CustomerSurname"": ""Ali""
        },
        {
             ""CustomerID"": ""3"",
             ""CustomerName"": ""Temel"",
             ""CustomerSurname"": ""Reis""
        }]";

        IList<Customer> iListData = new JavaScriptSerializer().Deserialize<IList<Customer>>(JSonData);

        foreach (var item in iListData)
            Console.WriteLine(item.ToString());

        Console.Read();
    }
}

}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文