从 JSON 值中恢复 "k1:v1,k2:v2,.." 作为键值对
Restore "k1:v1,k2:v2,.." from JSON value as Key-value pairs
我有一个这样的 JSON 值,我特别需要帮助将 D 变量的值放入键值对中。
{"A":727657,"B":"72.74:hello","C":"Http","D":"Value:0,Value1:79,Value2:56,Value3:45","E":0,"F":2}
我是这样解析这个值的。
MyJSONContructor MyJSONContructorObject = Newtonsoft.Json.JsonConvert.DeserializeObject<MyJSONContructor>(JSONValue);
我有一个这样的构造函数。
public MyJSONContructor(int A, string B, string C, string D, bool E,int F)
{
this.A = A;
this.B = B;
this.C = C;
this.D = D;
this.E = E;
this.F = F;
}
我需要帮助的是变量 D 中的值,如果您注意到其中有多个值,我希望能够将它们放入一个 keyValuePair 中,像这样
List<KeyValuePair<string, string>> contentsToPost
有没有一种简单的方法可以将它们添加到键值对列表中,因为我们不知道 Json 中的 D 中会有多少键值对,我试图避免做这样的事情.
var list = new List<KeyValuePair<string, string>>() {
new KeyValuePair<string, string>("Value", 0),
new KeyValuePair<string, string>("Value1", 79),
这个怎么样:
var myMap = new Dictionary<string,string>();
var rawArray = dValuesInSingleString.Split(',');
foreach(var arrayItem in rawArray)
{
var keyAndValueArray = arrayItem.Split(':');
myMap.Add(keyAndValueArray[0], keyAndValueArray[1]);
}
KeyValuePair 在 Dictionary 中使用,因此要获取 KeyValuePairs 列表,您可以这样做:
var myList = new List<KeyValuePair<string, string>>();
foreach (KeyValuePair<string, string> k in myMap)
{
myList.Add(k);
}
如果您对 LINQ 感到满意,您可以这样做:
List<KeyValuePair<string, string>> kvps =
(from pair in MyJSONContructorObject.D.Split(',')
let kv = pair.Split(':')
select new KeyValuePair<string, string>(kv[0], kv[1])
).ToList();
Fiddle: https://dotnetfiddle.net/HHti3s
我有一个这样的 JSON 值,我特别需要帮助将 D 变量的值放入键值对中。
{"A":727657,"B":"72.74:hello","C":"Http","D":"Value:0,Value1:79,Value2:56,Value3:45","E":0,"F":2}
我是这样解析这个值的。
MyJSONContructor MyJSONContructorObject = Newtonsoft.Json.JsonConvert.DeserializeObject<MyJSONContructor>(JSONValue);
我有一个这样的构造函数。
public MyJSONContructor(int A, string B, string C, string D, bool E,int F)
{
this.A = A;
this.B = B;
this.C = C;
this.D = D;
this.E = E;
this.F = F;
}
我需要帮助的是变量 D 中的值,如果您注意到其中有多个值,我希望能够将它们放入一个 keyValuePair 中,像这样
List<KeyValuePair<string, string>> contentsToPost
有没有一种简单的方法可以将它们添加到键值对列表中,因为我们不知道 Json 中的 D 中会有多少键值对,我试图避免做这样的事情.
var list = new List<KeyValuePair<string, string>>() {
new KeyValuePair<string, string>("Value", 0),
new KeyValuePair<string, string>("Value1", 79),
这个怎么样:
var myMap = new Dictionary<string,string>();
var rawArray = dValuesInSingleString.Split(',');
foreach(var arrayItem in rawArray)
{
var keyAndValueArray = arrayItem.Split(':');
myMap.Add(keyAndValueArray[0], keyAndValueArray[1]);
}
KeyValuePair 在 Dictionary 中使用,因此要获取 KeyValuePairs 列表,您可以这样做:
var myList = new List<KeyValuePair<string, string>>();
foreach (KeyValuePair<string, string> k in myMap)
{
myList.Add(k);
}
如果您对 LINQ 感到满意,您可以这样做:
List<KeyValuePair<string, string>> kvps =
(from pair in MyJSONContructorObject.D.Split(',')
let kv = pair.Split(':')
select new KeyValuePair<string, string>(kv[0], kv[1])
).ToList();
Fiddle: https://dotnetfiddle.net/HHti3s