Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从JSON对象提取Base64编码的WAV_C#_Json_Base64 - Fatal编程技术网

C# 从JSON对象提取Base64编码的WAV

C# 从JSON对象提取Base64编码的WAV,c#,json,base64,C#,Json,Base64,创建调用PHP服务器的.NET3.5程序集。返回JSON对象的值。JSON对象有一个Base64编码的WAV文件(见下文)。正在尝试使用Newtonsoft.Json从“value”转换WAV。花了8个小时尝试 这是我尝试过的代码 int count = 0; byte[] buf = new byte[8192]; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse response

创建调用PHP服务器的.NET3.5程序集。返回JSON对象的值。JSON对象有一个Base64编码的WAV文件(见下文)。正在尝试使用Newtonsoft.Json从“value”转换WAV。花了8个小时尝试

这是我尝试过的代码

int count = 0;
byte[] buf = new byte[8192];
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream resStream = response.GetResponseStream();
count = resStream.Read(buf, 0, buf.Length);
string json = Encoding.ASCII.GetString(buf, 0, count);

JObject jo = JObject.Parse(json);
//JObject jo = (JObject)JsonConvert.DeserializeObject(json);
这就是我被卡住的地方。错误内容如下:

“未终止的字符串。应为分隔符:\”。路径“result.value”,第1行,位置3449。“

几乎就像绳子太长了

我甚至还没有得到我从互联网上获得的需要调整的Base64转换代码

char[] base64CharArray;
inFile = new System.IO.StreamReader(inputFileName,System.Text.Encoding.ASCII);
base64CharArray = new char[inFile.BaseStream.Length];
inFile.Read(base64CharArray, 0, (int)inFile.BaseStream.Length);
base64String = new string(base64CharArray);

解决方案是周一第一件事就上线…

这应该很好。但可能不是最有效的解决方案。不过不要忘记关闭流,因为它们实现了
IDisposable

我在这里使用的是
WebClient
,但实际上没有什么区别。我认为
HttpWebRequest
在这种情况下是多余的

            WebClient client = new WebClient();
            Stream stream = client.OpenRead("http://waps.repli-con.com/services/ivrservices/getUserNameRecording/10000");
            StreamReader reader = new StreamReader(stream);

            JToken token = JObject.Parse(reader.ReadToEnd().ToString());

            string base64string = token.SelectToken("result").SelectToken("value").ToString();
            Byte[] b = Convert.FromBase64String(base64string);
            System.IO.File.WriteAllBytes(@"C:\Users\user\Desktop\test.wav", b);   
            stream.Close();

首先,您在从JSON中获取base64字符串时遇到问题,或者在将base64字符串转换为wav文件时遇到问题吗?其次,到目前为止,您尝试了什么?Jason尝试从JSON中获取base64字符串。甚至还没有将base64转换为wav。我用这个来尝试并帮助我:谢谢RAS…我从未见过任何示例至少有一天。