我在json2csharp的帮助下宣布了以下类来管理我的回复
public class Address
{
public string addressLine1 { get; set; }
public string addressLine2 { get; set; }
public string addressLine3 { get; set; }
public string locality { get; set; }
public string province { get; set; }
public string postalCode { get; set; }
public string country { get; set; }
}
public class Component
{
public string streetNumber1 { get; set; }
public string street1 { get; set; }
public string locality1 { get; set; }
public string postalCode1 { get; set; }
public string country1 { get; set; }
public string countryISO1 { get; set; }
}
public class RootObjectFormat
{
public List<Address> address { get; set; }
public List<Component> components { get; set; }
}
这是我的电话
var client = new RestClient(cmboxOutput.Text); //this has a full url in it for a get response
var formatRequest = new RestRequest();
formatRequest.AddHeader("token", "XYZ");
IRestResponse<RootObjectFormat> formatResponse = client.Execute<RootObjectFormat>(formatRequest);
现在我收到了回复,这很棒。但它是嵌套的。不幸的是,每个循环的以下内容都会以不正确的格式获取数据。
foreach (var result in formatResponse.Data.address)
{
rchtxtbxOutputLayout.Text = rchtxtbxOutputLayout.Text + result.addressLine1 + '\n';
rchtxtbxOutputLayout.Text = rchtxtbxOutputLayout.Text + result.addressLine2 + '\n';
rchtxtbxOutputLayout.Text = rchtxtbxOutputLayout.Text + result.addressLine3 + '\n';
rchtxtbxOutputLayout.Text = rchtxtbxOutputLayout.Text + result.locality + '\n';
rchtxtbxOutputLayout.Text = rchtxtbxOutputLayout.Text + result.postalCode + '\n';
rchtxtbxOutputLayout.Text = rchtxtbxOutputLayout.Text + result.country + '\n';
}
由于它嵌套到抓取addressLine2,我必须等待第二次执行循环,最后我的输出看起来非常不专业。有一个更好的方法吗? http://i.imgur.com/saAhf9L.png&lt;首先在循环上运行 http://i.stack.imgur.com/24cco.png&lt;第五次运行
找到了一种从响应中输出格式的更好方法,但它仍然不是那么完美。有什么方法可以改善吗?
foreach (var result in formatResponse.Data.address)
{
rchtxtbxOutputLayout.Text = rchtxtbxOutputLayout.Text +"\n"+ string.Join("",result.addressLine1 + result.addressLine2
+ result.addressLine3 + result.postalCode + result.province + result.country);
}
答案 0 :(得分:0)
foreach (var result in formatResponse.Data.address)
{
var str = "";
str = string.Join("",result.addressLine1 + result.addressLine2
+ result.addressLine3 + result.postalCode + result.province + result.country);
if (str != "")
{
rchtxtbxOutputLayout.Text = rchtxtbxOutputLayout.Text + str.ToString() + "\n";
}