JSON;发送和接收数据我正在尝试为请求和响应应用程序创建一个桌面客户端。我能够轻松地执行GET请求。但我想知道是否有人可以帮我弄清楚如何进行JSON请求和响应。并将其解析为一个字符串,从那里我可以练习如何将其全部切片Json.net在.net世界中无处不在。小更新:作为System.Web或JSON.net的替代品,还有JSONFX和ServiceStack.Text对于桌面应用程序,这里有一个用于发出JSON请求的解决方案。某处可能已经有API可以执行此操作,但我还没有找到。桌面应用程序“测试”用于传递证书参数。JavaScriptSerializer可以在System.Web.Extensions.dll中找到。HttpWebRequest请求=(HttpWebRequest)HttpWebRequest.Create("http://localhost:2616/Default.aspx/JsonTester");request.ContentType="application/json;charset=utf-8";request.Accept="application/json,text/javascript,*/*";request.Method="POST";使用(StreamWriterwriter=newStreamWriter(request.GetRequestStream())){writer.Write("{id:'test'}");}WebResponse响应=request.GetResponse();流流=response.GetResponseStream();字符串json="";使用(StreamReaderreader=newStreamReader(stream)){while(!reader.EndOfStream){json+=reader.ReadLine();}}//3.5+将'D'添加到结果中,例如//{"d":"{"Name":"bob","Age":20,"Foods":["cheeseburger","caviar"]}"}//所以它认为它是一个只有一个键/值的字典JavaScriptSerializerserializer=newJavaScriptSerializer();字典x=(字典)serializer.DeserializeObject(json);MyData数据=serializer.Deserialize(x["d"].ToString());ASP.NETWeb应用程序中的默认.aspx:[WebMethod]publicstaticstringJsonTester(stringid){JavaScriptSerializerser=newJavaScriptSerializer();varjsonData=newMyData(){Name="bob",Age=20,Foods=newList()};jsonData.Foods.Add("芝士汉堡");jsonData.Foods.Add("鱼子酱");varresult=ser.Serialize(jsonData);返回结果;}MyData对象MyData出现在web应用程序和控制台应用程序中,但是你想把它作为域对象放在你自己的程序集中,并在两个地方引用它publicclassMyData{publicstringName{get;放;}publicintAge{得到;放;}publicIListFoods{得到;放;查看System.Web.Extensions.dll程序集中的System.Web.Script.Serialization.JavaScriptSerializer类。它包含非常简单易用的序列化和反序列化方法。以上就是C#学习教程:JSONinC#;发送和接收数据共享。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
