C# 从web服务请求C将数组转换为字符串#
我有一个php web服务,我尝试使用它并将数据解析到designer中的文本框中(我使用的是windows 10 app store应用程序),以下是我的代码:C# 从web服务请求C将数组转换为字符串#,c#,win-universal-app,windows-10-universal,C#,Win Universal App,Windows 10 Universal,我有一个php web服务,我尝试使用它并将数据解析到designer中的文本框中(我使用的是windows 10 app store应用程序),以下是我的代码: public sealed partial class MainPage : Page { public string uriString = "my URL"; public MainPage() { this.InitializeComponent()
public sealed partial class MainPage : Page
{
public string uriString = "my URL";
public MainPage()
{
this.InitializeComponent();
Getdata();
}
private async void Getdata()
{
var http = new HttpClient();
http.MaxResponseContentBufferSize = Int32.MaxValue;
System.Collections.ArrayList response = new System.Collections.ArrayList(new string[] { await http.GetStringAsync(uriString) });
var rootObject = JsonConvert.DeserializeObject<Sponsorises.RootObject>(response); //the error is here
sponsorname.Text = rootObject.nom; //the name of my textBox
}
public class Sponsorises
{
internal class RootObject
{
public string nom { get; set; }
public string tel { get; set; }
public string photo { get; set; }
public string sponsorise_adrs { get; set; }
}
}
我在将arraylist响应转换为字符串rootObject时遇到问题,您知道吗
感谢您的帮助您可以为
赞助商添加另一个课程
:
internal class RootObject
{
public string success { get; set; }
public string message { get; set; }
public string total { get; set; }
public List<Sponsorise> sponsorises { get; set; }
}
class Sponsorise
{
public string nom { get; set; }
public string tel { get; set; }
public string photo { get; set; }
public string sponsorise_adrs { get; set; }
}
内部类RootObject
{
公共字符串成功{get;set;}
公共字符串消息{get;set;}
公共字符串总计{get;set;}
公共列表赞助商{get;set;}
}
班级赞助
{
公共字符串nom{get;set;}
公共字符串tel{get;set;}
公共字符串photo{get;set;}
公共字符串赞助商_adrs{get;set;}
}
并反序列化如下:
var rootObject = JsonConvert.DeserializeObject<RootObject>(response);
sponsorname.Text = rootObject.sponsorises[0].nom;
var rootObject=JsonConvert.DeserializeObject(响应);
赞助商名称.Text=rootObject.sponsorises[0].nom;
您可以为赞助商添加另一个类
:
internal class RootObject
{
public string success { get; set; }
public string message { get; set; }
public string total { get; set; }
public List<Sponsorise> sponsorises { get; set; }
}
class Sponsorise
{
public string nom { get; set; }
public string tel { get; set; }
public string photo { get; set; }
public string sponsorise_adrs { get; set; }
}
内部类RootObject
{
公共字符串成功{get;set;}
公共字符串消息{get;set;}
公共字符串总计{get;set;}
公共列表赞助商{get;set;}
}
班级赞助
{
公共字符串nom{get;set;}
公共字符串tel{get;set;}
公共字符串photo{get;set;}
公共字符串赞助商_adrs{get;set;}
}
并反序列化如下:
var rootObject = JsonConvert.DeserializeObject<RootObject>(response);
sponsorname.Text = rootObject.sponsorises[0].nom;
var rootObject=JsonConvert.DeserializeObject(响应);
赞助商名称.Text=rootObject.sponsorises[0].nom;
问题在于JsonConvert.Deserialize()需要的是字符串,而不是数组列表
这可以通过不将web响应强制转换到ArrayList来实现
var response = await http.GetStringAsync(uriString);
var rootObject = JsonConvert.DeserializeObject<RootObject>(response);
var response=wait http.GetStringAsync(uriString);
var rootObject=JsonConvert.DeserializeObject(响应);
问题在于JsonConvert.Deserialize()需要的是字符串,而不是数组列表
这可以通过不将web响应强制转换到ArrayList来实现
var response = await http.GetStringAsync(uriString);
var rootObject = JsonConvert.DeserializeObject<RootObject>(response);
var response=wait http.GetStringAsync(uriString);
var rootObject=JsonConvert.DeserializeObject(响应);
将其添加到每个RootObject属性的开头:
[JsonProperty("fieldName")]
将其添加到每个RootObject属性的开头:
[JsonProperty("fieldName")]
“问题”是什么?任何异常?我有一个错误:“无法将'System.Collections.arrayList'转换为影响对RootObjects的响应的行中的字符串。这个错误对我来说似乎很清楚。你尝试过解决它吗?我尝试过这样做:List rootObject=JsonConvert.DeserializeObject(响应);什么是‘问题’?任何异常?我有一个错误:”无法将“System.Collections.arrayList”转换为影响对RootObjects的响应的字符串。我很清楚这个错误。您试图解决什么问题?我尝试了这一行:List rootObject=JsonConvert.DeserializeObject(response);谢谢你的代码,但如果我应用它,我会得到一个其他错误,那就是:RootObject不包含nom的定义:(谢谢你的代码,但是如果我应用它,我会得到一个其他错误,那就是:RootObject不包含nom的定义:(谢谢先生的回复,我认为赞助商是一个数组:/谢谢先生的回复,我认为赞助商是一个数组:/