3 回答
TA贡献2080条经验 获得超4个赞
编辑:您可以使用[JsonRequiredAttribute]:
class CustomObject
{
[JsonRequiredAttribute]
string fname;
[JsonRequiredAttribute]
string lname;
}
或者,您可以使用Newtonsoft.Json.Schema来验证:
var schema = JSchema.Parse(@"{
'type': 'object',
'properties': {
'fname': { 'type': 'string' },
'lname': { 'type': 'string' }
},
'additionalProperties': false,
'required': ['name', 'email']
}");
var jsonObj = JObject.Parse("{\"User\": \"Hello\"}");
// throws if not valid
jsonObj.Validate(schema);
// or, if you want to handle it yourself
if (!jsonObj.IsValid(schema, out IList<ValidationError> errors))
{
// ...
}
// if all pass
var custObj = jsonObj.ToObject<CustomObject>();
TA贡献1725条经验 获得超7个赞
public class CustomObject
{
[JsonProperty("FirstName")]
string fname { get; set; }
[JsonProperty("LastName")]
string lname { get; set; }
}
public void Test()
{
Dictionary<string, string> collection = new Dictionary<string, string>();
collection.Add("FirstName", "Test");
collection.Add("LastName", "1234");
JObject jsobObj = JObject.Parse(JsonConvert.SerializeObject(collection, Newtonsoft.Json.Formatting.Indented));
CustomObject custObj = new CustomObject();
if (jsobObj != null)
{
if (jsobObj.Property("FirstName") != null && jsobObj.Property("LastName") != null)
{
custObj = jsobObj.ToObject<CustomObject>();
}
}
}
TA贡献1827条经验 获得超4个赞
您可以使用.SelectToken()
它从具有多个不同对象的较大 json 中获取特定对象。
对于您的具体示例,它看起来像这样。
custObj = (CustomObject)jsonObj.SelectToken("CustomObject");
您要将所选标记转换为CustomObject
,然后将其分配给您的custObj
变量。
- 3 回答
- 0 关注
- 168 浏览
添加回答
举报