C# 从json字符串属性中删除撇号
嗨,我尝试用JSON.NET反序列化这个字符串 字符串如下所示:C# 从json字符串属性中删除撇号,c#,json,serialization,json.net,C#,Json,Serialization,Json.net,嗨,我尝试用JSON.NET反序列化这个字符串 字符串如下所示: { "mishelka.sk": { "idUser": 15289422, "nick": "MiShelKa.Sk", "photo": "1", "sex": 2, "photoAlbums": 4, "videoAlbums": 3, "sefNick": "mishelka.sk", "
{
"mishelka.sk": {
"idUser": 15289422,
"nick": "MiShelKa.Sk",
"photo": "1",
"sex": 2,
"photoAlbums": 4,
"videoAlbums": 3,
"sefNick": "mishelka.sk",
"profilPercent": 78,
"emphasis": false,
"age": 14,
"isBlocked": false,
"PHOTO": {
"normal": "http://u.aimg.sk/fotky/1528/94/n_15289422.jpg?v=4",
"medium": "http://u.aimg.sk/fotky/1528/94/m_15289422.jpg?v=4",
"24x24": "http://u.aimg.sk/fotky/1528/94/s_15289422.jpg?v=4"
},
"PLUS": {
"active": false,
"activeTo": "0000-00-00"
},
"LOCATION": {
"idRegion": "10",
"regionName": "zahraničie",
"idCity": "182",
"cityName": "Zahraničie - GB"
},
"STATUS": {
"isLoged": false,
"isChating": false,
"idChat": 0,
"roomName": "",
"lastLogin": 1294767618
},
"PROJECT_STATUS": {
"photoAlbums": 4,
"photoAlbumsFavs": 1,
"videoAlbums": 3,
"videoAlbumsFavs": 33,
"videoAlbumsExts": 0,
"blogPosts": 0,
"emailNew": 1,
"postaNew": 0,
"clubInvitations": 0,
"dashboardItems": 54
},
"STATUS_MESSAGE": {
"statusMessage": "Jaj henka zabila si dneska hah",
"addTime": "1294678134"
},
"isFriend": false,
"isIamFriend": false
},
"mishel431": {
"idUser": 18327105,
"nick": "mishel431",
"photo": "1",
"sex": 2,
"photoAlbums": 1,
"videoAlbums": 0,
"sefNick": "mishel431",
"profilPercent": 98,
"emphasis": false,
"age": 15,
"isBlocked": false,
"PHOTO": {
"normal": "http://u.aimg.sk/fotky/1832/71/n_18327105.jpg?v=5",
"medium": "http://u.aimg.sk/fotky/1832/71/m_18327105.jpg?v=5",
"24x24": "http://u.aimg.sk/fotky/1832/71/s_18327105.jpg?v=5"
},
"PLUS": {
"active": false,
"activeTo": "0000-00-00"
},
"LOCATION": {
"idRegion": "1",
"regionName": "Banskobystrický kraj",
"idCity": "70",
"cityName": "Lučenec"
},
"STATUS": {
"isLoged": false,
"isChating": false,
"idChat": 0,
"roomName": "",
"lastLogin": 1294760188
},
"PROJECT_STATUS": {
"photoAlbums": 1,
"photoAlbumsFavs": 0,
"videoAlbums": 0,
"videoAlbumsFavs": 0,
"videoAlbumsExts": 0,
"blogPosts": 0,
"emailNew": 1,
"postaNew": 0,
"clubInvitations": 0,
"dashboardItems": 14
},
"STATUS_MESSAGE": {
"statusMessage": " I hate "apple" lalala:(",
"addTime": "1293656085"
},
"isFriend": false,
"isIamFriend": false
}
}
我尝试将这个字符串反序列化为dic,一切正常,但我有一个问题
这是:
"STATUS_MESSAGE": {
"statusMessage": " I hate "apple" lalala:(",
"addTime": "1293656085"
},
statusMessage属性可以包含撇号,这会导致无效的异常json字符串。我想删除所有json字符串中字符串属性statusMessage中的撇号
任何建议。使用regExp。我在这个领域不强
此部分在此类中反序列化:
[Export]
public class StatusMessage : INotifyPropertyChanged
{
#region Private Fields
private string _message;
#endregion
#region Properties
[JsonProperty("statusMessage")]
public string Message
{
get { return _message; }
set
{
if (_message != value)
{
_message = value;
NotifyPropertyChanged("Message");
}
}
}
[JsonProperty("addTime")]
public string AddTime { get; set; }
#endregion
#region Implementation of INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
#endregion
#region Public methods
public void NotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion
}
Json字符串的生成器应使用反斜杠转义引号。
查看网站上的规范,这样您就不必担心格式错误的Json字符串了@user572844您所指的字符是“引号”或“双引号”。此外,生成Json的是有缺陷的。此Json不会生成,无论生成Json的是什么,都是危险的错误,它允许最终用户插入任意命令。如果您
eval
it,最终用户将能够接管您的服务器。不要使用它。如果要将statusMessage
的内容发送到数据库,SQL注入当然是可能的。如果消息是:Little Bobby“}}DROP TABLE“Students”/*我不能对这个json字符串进行任何更改,因为它是服务器上http get REQUEST上的响应,而不是我的。