当前位置: 首页 > 编程语言 > C#

C#对象转Json对象分享

时间:2023-04-11 01:09:19 C#

C#对象转Json对象我想把C#对象序列化成Json对象。然后将其提交给SalesforceAPI,并创建一个应用程序。现在我正在将一个C#对象序列化为一个Json字符串,但我需要它作为一个对象。这是我的C#对象以及随附的序列化。客户申请=新客户{ProductDescription="gors_descr"+tbDescription.Text,Fname="b_name_first"+tbFName.Text,Lname="b_name_last"+tbLName.Text};varjson=newSystem.Web.Script.Serialization.JavaScriptSerializer();字符串jsonString=json.Serialize(application);stringendPoint=token.instance_url+"/services/apexrest/submitApplication/";stringresponse=conn.HttpPost(endPoint,json,token);LiteralrLiteral=this.FindControl("resultLiteral")asLiteral;我需要在JSON对象中输出一个JSON字符串。我需要的一个例子如下:+"}";这个硬编码的json字符串在对象内部。目前,C#对象中的值被输出到一个JSON字符串中,但我需要将其输出到一个对象中,以便SalesforceAPI接受提交。如何将JSON字符串追加或插入到对象中?要首先创建正确的JSON,您需要准备适当的模型。它可能是这样的:[DataContract]publicclassCustomer{[DataMember(Name="gors_descr")]publicstringProductDescription{get;放;}[DataMember(Name="b_name_first")]publicstringFname{get;放;}[DataMember(Name="b_name_last")]publicstringLname{get;放;}}为了能够使用Data属性,您需要选择其他一些JSON序列化程序。例如DataContractJsonSerializer或Json.NET(我将在本例中使用)。Customercustomer=newCustomer{ProductDescription=tbDescription.Text,Fname=tbFName.Text,Lname=tbLName.Text};stringcreditApplicationJson=JsonConvert.SerializeObject(new{jsonCreditApplication=customer});所以jsonCreditApplication变量将是:{"jsonCreditApplication":{"gors_descr":"Appliances","b_name_first":"Marisol","b_name_last":"Testcase"}}其他方式。使用系统;使用Newtonsoft.Json;namespaceMyNamepace{publicclassMyCustomObject{publicMyCustomObject(){}[JsonProperty(PropertyName="my_int_one")]publicintMyIntOne{get;放;}[JsonProperty(PropertyName="my_bool_one")]publicboolMyBoolOne{get;放;}}}和/*使用Newtonsoft.Json;*/MyCustomObjectmyobj=MyCustomObject();myobj.MyIntOne=123;myobj.MyBoolOne=false;字符串jsonString=JsonConvert.SerializeObject(myobj,Formatting.None,newJsonSerializerSettings(){ReferenceLoopHandling=Newtonsoft.Json.ReferenceLoopHandling.Ignore});在撰写本文时,请参阅http://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_JsonSerializerSettings.htm了解我的packages.config...尽管我确定未来/最新版本仍会支持它:您可以使用类似于http://restsharp.org/,这是一个用于REST的c#库。如果是这样,它有一个内置的json对象序列化器(.addJsonBody()),或者你可以自己序列化它并添加request.AddParameter("application/json;charset=utf-8",json,ParameterType.RequestBody);或者,如果你想更好地控制它,你可以使用System.Net.HttpWebRequest()我也找到了https://github.com/ademargomes/JsonRequest,但它仍在开发中。请注意,如果您使用RestSharp之类的东西,它是一个罐头请求,因此它们创建为标准请求(例如,带有json或自定义标头甚至自定义身份验证的multipart/form-data)的任何变体可能不适用于其库,在在这种情况下,最好自己使用HttpWebRequest。希望有帮助!安装Newtonsoft.JsonNuGet,然后使用require命名装饰来装饰Customer类,以告诉Json序列化程序如何序列化客户类字段:publicclassCustomer{[JsonProperty("gors_descr")]publicstringProductDescription;[JsonProperty("b_name_first")]publicstringFname;[JsonProperty("b_name_last")]publicstringLname;}接下来,像这样序列化对象:Customerapplication=newCustomer{ProductDescription="Appliances",Fname="Marisol",Lname="Testcase"};varJsonOutput=JsonConvert.SerializeObject(new{jsonCreditApplication=application});你会得到想要的结果,JsonOutput的值将是:"{"jsonCreditApplication":{"gors_descr":"Appliances","b_name_first":"Marisol","b_name_last":"Testcase"}}"有很多方法来做到这一点,但我相信这是最简单的解决方案。以上就是C#学习教程:ConvertingC#objectstoJsonobjects的全部内容分享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处: