作者wind681201 (阿风~~)
看板C_Sharp
标题[问题] JSON的验证方法
时间Mon Mar 12 19:15:37 2018
想请问各位大大。
若我想要验证我的json字串跟我的class是符合的,该怎麽做呢?
举个例子
class member{
public string name;
public string id;
}
若是字串是 {\"id\":\"aaa\",\"id\":\"bbb\"}
预设的状况下,json.net可以反序列回member
但我不想让他反序列回去,该怎麽做呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.116.73.164
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1520853340.A.09A.html
1F:→ t64141: jtoken, jobject, jarray, jproperty ? 03/12 19:53
2F:→ t64141: 或是暴力反射出class的properties,再拿名字去json字串里 03/12 19:56
3F:→ t64141: 面找,但可预期的问题会很多,尤其如果要支援巢状的类别 03/12 19:56
4F:→ wind681201: 真的,我试过很多,也有反序列,再序列比对字串,都会 03/12 21:28
5F:→ wind681201: 产生很多不同的问题,真不知该怎麽办 03/12 21:29
6F:→ t64141: 不想反序列的原因是什麽?厘清限制与原因比较好下手 03/12 21:52
7F:→ landlord: 是指 一定要有name? 03/12 23:39
8F:→ Tony427: 也可以用dataannotations验证栏位值啊~ 03/13 15:43
9F:→ Tony427: 有时候不一定只有一种解法XD.先看看你的需求跟问题是什麽 03/13 15:43
10F:→ wind681201: 我想做的,就只是字串跟物件,一定要栏位一样,才可以 03/13 19:39
11F:→ wind681201: 做转换,不然,不让他做转换 03/13 19:39
12F:→ m339606: JSON Schema validato 03/13 20:07
13F:推 manure54321: 先把你的物件转换成JObject,然後var 一个变数,变 04/26 15:37
14F:→ manure54321: 数用你要的型别做cast,然後检查 04/26 15:37
15F:推 upasaka: 我上次反序列不出来,(接收restful api result值),後来 06/02 14:24
16F:→ upasaka: 用json to string 然後string split字元,切成字串阵列 06/02 14:24
17F:→ upasaka: 後,replace不要的字元,用空字串,然後装进list〈string 06/02 14:24
18F:→ upasaka: 〉,跑foreach比对。我後来是写成method ,传入参数是jso 06/02 14:24
19F:→ upasaka: n to sting return 出来是list〈string〉。算是暴力法解 06/02 14:24
20F:→ upasaka: 出,供你参考 06/02 14:24