使用Json.Net将字节数组解析为json
我正在尝试使用Json.Net将byte[]
数组解析为Dictionary
但没有成功
其实我对它的可能性有疑问。 那有可能吗? 有这个图书馆还是其他图书馆?
这是我尝试过但DeserializeObject除了字符串作为参数afaik
public static Dictionary parse(byte[] json){ Dictionary values = JsonConvert.DeserializeObject<Dictionary>(json); return values; }
byte[]
是某种编码文本吗? 如果是这样,首先解码它,例如,如果编码是UTF8:
public static Dictionary parse(byte[] json){ string jsonStr = Encoding.UTF8.GetString(json); return JsonConvert.DeserializeObject>(jsonStr); }
要了解byte []中的内容,您应该指定编码并使用实际可以获取byte []的方法。
由于我不知道这种方法,这将是您的问题的解决方案 –
所以正确的做法是 –
public static Dictionary parse(byte[] json) { var reader = new StreamReader(new MemoryStream(json), Encoding.Default); Dictionary values = new JsonSerializer().Deserialize>(new JsonTextReader(reader)); return values; }
另一种可能有助于解释应该如何进行去学术化的方法是 –
var jsonString = System.Text.Encoding.Default.GetString(json); Dictionary values = JsonConvert.DeserializeObject>(jsonString);