hi,大家好,我这有个有关 c# 的 json 的问题

2014-12-09 23:11:11 +08:00
 niceworld
我目前正在学习c#
现在正在做一个用echonest 生成音乐指纹 来查找音乐信息的小软件。
不过现在遇到个问题。
我是用
public string fing()
{
StreamReader streamReader = process.StandardOutput 的到codegen,exe的返回值
}
用的Newtonsoft.Json 在取出值 string转换为json 类型时
JArray jcode = JArray.Parse()
爆出了一个异常:
“Newtonsoft.Json.JsonReaderException”类型的未经处理的异常在 Newtonsoft.Json.dll 中发生
其他信息: After parsing a value an unexpected character was encountered: t. Path '[0].metadata.release', line 2, position 52.
是因为我的string 已经是json的关系么?
我该怎么做呢
9379 次点击
所在节点    问与答
3 条回复
niceworld
2014-12-09 23:16:12 +08:00
这是我的sting的值 codegen输出的已经是json
[
{
"metadata":{
"artist":"Hiroyuki Sawano",
"release":"Attack on Titan Original Soundtrack",
"title":"03.eye-water",
"genre":"Other",
"bitrate":320,
"sample_rate":48000,
"duration":181,
"filename":"1.mp3",
"samples_decoded":110250,
"given_duration":10,
"start_offset":10,
"version":4.12,
"codegen_time":0.031000,
"decode_time":2.094000
},
"code_count":300,
"code":"eJy1llHOJDcIhK9kgwFzHMD4_kdITR4yyS_F...........................",
"tag":0
}
]
SoloCompany
2014-12-10 00:41:20 +08:00
我猜的,你原字符串的 title 属性没有加双引号
niceworld
2014-12-11 17:53:49 +08:00
@SoloCompany 不知道什么原因.....我的json的字符串是由codegen.exe自动生成的..按理来说这样反序列化是没问题的...蛋疼的是我换了一个测试用的音乐文件就可以了= =#
所以我想是不是因为Newtonsoft.Json中的 这个JArray.Parse()方法有问题.....
对一些特殊字符不支持?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/152735

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX