Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将字符串转换为JSON_C#_Json - Fatal编程技术网

C# 如何将字符串转换为JSON

C# 如何将字符串转换为JSON,c#,json,C#,Json,我以以下格式从我的源获取数据: tag_id=0x770000001103AE6FF40DDF9D, tid=0xE2003412013DC2FFEE1223ED160E0142100548BBFF80DC60, user_data=0x12A7B70991000000006E5C05D37F0000, first=2018-12-03T22:52:16.218, antenna=1, rssi=-471, tid_authentic=AUTHENTIC, pw_authentic=AUTHEN

我以以下格式从我的源获取数据:

tag_id=0x770000001103AE6FF40DDF9D, tid=0xE2003412013DC2FFEE1223ED160E0142100548BBFF80DC60, user_data=0x12A7B70991000000006E5C05D37F0000, first=2018-12-03T22:52:16.218, antenna=1, rssi=-471, tid_authentic=AUTHENTIC, pw_authentic=AUTHENTIC
我就是这样得到结果的:

private static void EventReceiveHandler(object sender, EventInfo eventInfo)
        {
            switch (eventInfo.Type)
            {
                case EventInfo.EventTypes.STATUS_TX_ACTIVE:
                    //StatusChanged(eventInfo.Data);
                    //AddMessageToTxt("STATUS REPORT " + eventInfo.Data);                    
                    break;
                case EventInfo.EventTypes.TAG_REPORT:
                    AddMessageToTxt(string.Format("Time: {0} ~ STATUS REPORT: {1}", DateTime.Now, eventInfo.Data)); // "STATUS REPORT " + eventInfo.Data);
                    break;
                case EventInfo.EventTypes.TAG_ARRIVE:
                    AddMessageToTxt("Tag Arrives " + eventInfo.Data);
                    break;
                case EventInfo.EventTypes.TAG_DEPART:
                    AddMessageToTxt("Tag Depart " + eventInfo.Data);
                    break;
                case EventInfo.EventTypes.TAG_RAW_ARRIVE:
                    AddMessageToTxt("Tag Raw Arrive " + eventInfo.Data);
                    break;
                default:
                    AddMessageToTxt("NOTHING ELSE");
                    break;
            }
        }
如何将其转换为json格式,使其看起来像这样:

{
    "tag_id":"0x770000001103AE6FF40DDF9D",
    "tid":"0xE2003412013DC2FFEE1223ED160E0142100548BBFF80DC60",
    "user_data":"0x12A7B70991000000006E5C05D37F0000",
    "first":"2018-12-03T22:52:16.21",
    "antenna":"1",
    "rssi":"471",
    "tid_authentic":"AUTHENTIC",
    "pw_authentic":"AUTHENTIC"
}

谢谢。

因此您必须首先解析输入字符串,然后从中创建一些JSON。第一个任务可以是正则表达式的任务,因为您想要的JSON似乎只有字符串值,第二个任务也可以由正则表达式完成:

var s = "tag_id=0x770000001103AE6FF40DDF9D, tid=0xE2003412013DC2FFEE1223ED160E0142100548BBFF80DC60, user_data=0x12A7B70991000000006E5C05D37F0000, first=2018-12-03T22:52:16.218, antenna=1, rssi=-471, tid_authentic=AUTHENTIC, pw_authentic=AUTHENTIC";

var regex = new Regex(@"(?<n>\w+)=(?<v>\w+)");

var json = "{" + regex.Replace(s, m => string.Format("\"{0}\":\"{1}\"", m.Groups["n"].Value, m.Groups["v"])) + "}";
var s=“tag_id=0x7700010103AE6FF40DDF9D,tid=0xE2003412013DC2FFEE1223ED160E0142100548BFF80DC60,用户_数据=0x12A7B7099100000006E5C05D37F0000,first=2018-12-03T22:52:16.218,天线=1,rssi=-471,tid_authentic=authentic,pw_authentic=authentic”;
var regex=new regex(@“(?\w+)=(?\w+));
var json=“{”+regex.Replace(s,m=>string.Format(“\“{0}\”:\“{1}\”,m.Groups[“n”].Value,m.Groups[“v”])+“}”;
var dictionary=newdictionary();
var parts=“tag_id=0x7700001103AE6FF40DDF9D,tid=0xE2003412013DC2FFEE223ED160E0142100548BFF80DC60,用户_数据=0x12A7B7099100000006E5C05D37F0000,first=2018-12-03T22:52:16.218,天线=1,rssi=-471,tid_=authentic,pw_=authentic=authentic=authentic”。拆分(',');
var keyValues=零件
.选择(q=>q.Split('='))
其中(q=>q.Length==2)
.ToList();
ForEach(q=>dictionary[q[0].Trim()]=q[1].Trim());
var json=JsonConvert.SerializeObject(字典);
//json==
//{
//“标签id”:“0x7700000010103AE6FF40DDF9D”,
//“tid”:“0xE2003412013DC2FFEE1223ED160E0142100548BFF80DC60”,
//“用户数据”:“0x12A7B7099100000006E5C05D37F0000”,
//“第一个”:“2018-12-03T22:52:16.218”,
//“天线”:“1”,
//“rssi”:“-471”,
//“tid_正宗”:“正宗”,
//“正宗”:“正宗”
//}

JsonConvert来自Newtonsoft.Json库。

将Newtonsoft.Json库用于sonConvert.serializedObject()

我建议使用Json.NET的
JsonConvert.serializedObject()
,但您需要知道返回的对象类型以及它应该如何序列化。您到底想转换为Json什么?数据(“tag_id=…”)或EventReceiveHandler中接收的事件?请参阅我的编辑。非常感谢。