什么是正确的方法?

加入
2015年12月22日
消息
1
编程经验
Beginner
您好,我很新的编程,我正在使用json.net库写一本只读地址簿。地址簿中的每个人都有大约30个值。然而,有时一个人可能缺少几个价值观。


当值丢失程序锁并崩溃时。所以我在每个值围绕的尝试/捕获。然而,我感觉是一种方法来实现这一目标。


接近这个的最佳方式是什么?我考虑了编写一个函数,该函数将进入值,然后输出结果。这样,我只需要在侧面尝试/捕获1次。


只是不要想学习任何坏习惯。




C#:
JObject jsonObj = JObject.Parse(jsonData);
try
{
    key1 = jsonObj["data"]["name"].ToString();
}
catch
{
    key1 = "Not There";
}
try
{
    key2 = jsonObj["data"]["phone"].ToString();
}
catch
{
    key2 = "Not There";
}


try
{
    key3 = jsonObj["data"]["address"]["city"].ToString();
}
catch
{
    key2 = "Not There";
}
 

约翰

C#论坛主持人
工作人员
加入
2011年4月23日
消息
1,158
地点
挪威
编程经验
10+
处理此处显示丢失键的某些选项: C# - json.net有键方法? - 堆栈溢出
您的代码的问题主要是您调用.tostring在可能为null的内容上。

您还可以定义一个类型并将数据序列化为它,例如: C# - 如果json.net - 堆栈溢出,我应该为可选字段设置任何属性
对于序列化,您还可以定义该字段的一部分,并让任何其他进入JsonextensionData字典,例如: C# - 使用JSON.NET - 堆栈溢出将已知和未知的JSON字段命名为CLR对象
 
最佳 底部