简体   繁体   English

fastJSON ToJSON成字典?

[英]fastJSON ToJSON into dictionary?

How to use fastJSON (or some other JSON lib, possibly) to dump some data into a dictionary format, eg {"key1": "valstring", "key2": 1234} ? 如何使用fastJSON(或其他一些JSON lib)将一些数据转换为字典格式,例如{"key1": "valstring", "key2": 1234}

If I try to dump Dictionary<string, Object> I get something like [{"k":"key1","v":"valstring"},{"k":"key2","v":1234}] instead. 如果我尝试转储Dictionary<string, Object>我得到类似[{"k":"key1","v":"valstring"},{"k":"key2","v":1234}]代替。

We use Json.NET at our office. 我们在办公室使用Json.NET We send json objects between python and C#. 我们在python和C#之间发送json对象。 We ran into the same problem, though ours was just the differences in how the languages naturally serialized it. 我们遇到了同样的问题,尽管我们的问题只是语言自然序列化的差异。

The best part about it, if I'm remember correctly, is that it had this behavior right out of the box. 关于它的最好的部分,如果我没记错的话,它是开箱即用的。

var dict = new Dictionary<string, string>();
dict.Add("key", "val");
dict.Add("key2", "val2");

string json = JsonConvert.SerializeObject(dict);

Json should equal { "key": "val", "key2": "val2" } Json应该等于{ "key": "val", "key2": "val2" }

You just can use JavaScriptSerializer to create your solution, it's native for .Net. 您可以使用JavaScriptSerializer来创建您的解决方案,它是.Net的原生。

var dict = new Dictionary<string, string>();
dict.Add("key", "val");
dict.Add("key2", "val2");

var serializer = new JavaScriptSerializer();
string json = serializer.Serialize(dict);

And you'l get result you are expected: {"key1": "valstring", "key2": 1234} 你会得到你期望的结果:{“key1”:“valstring”,“key2”:1234}

(fastJSON) You need use some parameters parameters: (fastJSON)您需要使用一些参数参数:

_jsonParameters = new JSONParameters
        {
            EnableAnonymousTypes = true,
            SerializeToLowerCaseNames = true,
            UseFastGuid = false,
            KVStyleStringDictionary = false <---- THIS
        };
    }

JSON.ToJSON(obj, _jsonParameters)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM