Я создаю проект приложения Windows Forms с помощью C#Получить значение из данных JSON, используя C#
Я хочу, чтобы показать всю информацию (например, CITYNAME, COUNTRYCODE и т.д. в разных Ярлыке), связанные с IP-адресом, который находится на моем Текстовое окно. Я уже много читал статью о JsonConvert
, и я не хочу использовать JsonConvert
.
вот мой C# код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Web.Script.Serialization;
using System.Windows.Forms;
namespace GetIPinfo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
List<LocaionInfo1> locations = new List<LocaionInfo1>();
string url = string.Format("http://ipinfo.io/" + txtip.Text);
using (WebClient client = new WebClient())
{
string json = client.DownloadString(url);
LocaionInfo1 location = new JavaScriptSerializer().Deserialize<LocaionInfo1>(json);
locations.Add(location);
}
if (locations.Count > 0)
{
foreach (LocaionInfo1 loc in locations)
{
label9.Text = loc.CityName;
label10.Text = loc.CountryCode;
label11.Text = loc.CountryName;
}
}
}
public class LocaionInfo1
{
public string IPAddress { get; set; }
public string CountryName { get; set; }
public string CountryCode { get; set; }
public string CityName { get; set; }
public string RegionName { get; set; }
public string ZipCode { get; set; }
public string Latitude { get; set; }
public string Longitude { get; set; }
public string TimeZone { get; set; }
}
}
}
Проблема заключается в том, что, когда я отладки этот код и введите IP-адрес в моем TextBox, а затем нажмите на кнопку Submit My LocaionInfo1 location = new JavaScriptSerializer().Deserialize<LocaionInfo1>(json);
является NULL
значения.
JSON Данные:
{
"ip": "182.69.151.41",
"hostname": "abts-north-dynamic-041.151.69.182.airtelbroadband.in",
"city": null,
"country": "IN",
"loc": "20.0000,77.0000",
"org": "AS24560 Bharti Airtel Ltd., Telemedia Services"
}
Так, пожалуйста, помогите, чтобы получить эти все значения. Я использую Visual Studio 2012.
в целях предотвращения подобных несоответствий, я предложил бы использовать что-то вроде «http://json2csharp.com». Делает вашу жизнь проще. –