这是个小Demo,主要是需要一个NuGet包
Newtonsoft.Json
包的版本无所谓,装最新的就行
页面设计如下
首先创建一个对象,属性数量跟页面的参数数量对应上就行。代码如下
/// <summary>
/// 需要转换的对象
/// </summary>
public class Data
{
/// <summary>
/// 参数1
/// </summary>
public string params1 { get; set; }
/// <summary>
/// 参数2
/// </summary>
public string params2 { get; set; }
/// <summary>
/// 参数3
/// </summary>
public string params3 { get; set; }
}
先写对象转为json,代码如下
/// <summary>
/// 转为json
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
// 判断参数有没有全被输入
if (string.IsNullOrWhiteSpace(textBox1.Text) ||
string.IsNullOrWhiteSpace(textBox2.Text) ||
string.IsNullOrWhiteSpace(textBox3.Text))
{
MessageBox.Show("请输入全部参数哦");
return;
}
// 将参数赋值给对象data
Data data = new Data
{
params1 = textBox1.Text,
params2 = textBox2.Text,
params3 = textBox3.Text
};
// 转换为json
string json = JsonConvert.SerializeObject(data);
// 输出
textBox4.Text = json;
}
再写转为对象,代码如下
/// <summary>
/// 转为参数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
// 判断json有没有被输入
if (string.IsNullOrWhiteSpace(textBox4.Text))
{
MessageBox.Show("请输入json哦");
return;
}
Data data = new Data();
// json转为对象,为了防止json有问题导致转换失败。使用try catch捕获异常
try
{
data = JsonConvert.DeserializeObject<Data>(textBox4.Text);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
return;
}
// 转换成功后将对应参数赋值
textBox1.Text = data.params1;
textBox2.Text = data.params2;
textBox3.Text = data.params3;
}
至此Demo已经完成,主要的就是JsonConvert类的两个方法。SerializeObject是将对象转为json,DeserializeObject是将json转为对象。谢谢大家。