我在JSON中有一个简单的键/值列表,通过POST发送回ASP.NET.例:
{ "key1": "value1", "key2": "value2"}
Run Code Online (Sandbox Code Playgroud)
我并没有想要进入强大的.NET对象
我只需要一个普通的旧的Dictionary(Of String,String),或者一些等价的(hash table,Dictionary(Of String,Object),old-school StringDictionary - hell,一个2-D字符串数组对我有用.
我可以使用ASP.NET 3.5中的任何可用内容,以及流行的Json.NET(我已经将其用于序列化到客户端).
显然,这些JSON库都没有开箱即用的明显功能 - 它们完全专注于通过强大的合同进行基于反射的反序列化.
有任何想法吗?
限制:
我正在编写客户端应用程序,它应该处理服务器响应.回复是JSON.我决定使用Json.NET来反序列化它们.我无法简化或修改这些响应(在服务器端).这种特定JSON响应的特殊困难是不同的对象类型在同一个数组中:散列和文件数组.所以,我想直接将这个数组反序列化为强类型对象,而不是对象数组.我认为应该有可能实现CustomCreationConverter,但我无法想象如何.
JSON:
{
"files":
[
"hash string",
[
["first file name", 12],
["second file name", 34]
]
]
}
Run Code Online (Sandbox Code Playgroud)
对象结构,我正在努力实现:
public class RootObject
{
[JsonProperty("files")]
public FilesContainer Container
{
get;
set;
}
}
public class FilesContainer
{
public string Hash
{
get;
set;
}
public File[] Files
{
get;
set;
}
}
[JsonConverter(typeof(FileJsonConverter))]
public class File
{
public string Name
{
get;
set;
}
public int Size
{
get;
set;
}
}
class FileJsonConverter : JsonConverter
{
public …Run Code Online (Sandbox Code Playgroud) 我在使用 C#(VS 2017,.Net 4.6)代码时遇到了一些麻烦。如果有人能帮忙就好了。我有一个 JSON 文件:
{
"makerCommission": 10,
"takerCommission": 10,
"buyerCommission": 0,
"updateTime": 1540015045989,
"balances": [
{
"asset": "BTC",
"free": "0.22222222",
"locked": "0.00000000"
},
{
"asset": "LTC",
"free": "2.00000000",
"locked": "3.00000000"
},
{
"asset": "ETH",
"free": "4.00000000",
"locked": "5.00000000"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想使用以下方法检索任何硬币的“免费”价值:
result = (dynamic)JArray.Parse(MyData)
Run Code Online (Sandbox Code Playgroud)
我不想检索所有免费值。如果我选择 BTC,我怎样才能得到 0.22222222?