Проверьте функцию str_extract_numbers()
из пакета strex
.
pacman::p_load(strex)
list=list()
list[1] = "djud7+dg[a]hs667"
list[2] = "7fd*hac11(5)"
list[3] = "2tu,g7gka5"
charvec <- unlist(list)
print(charvec)
#> [1] "djud7+dg[a]hs667" "7fd*hac11(5)" "2tu,g7gka5"
str_extract_numbers(charvec)
#> [[1]]
#> [1] 7 667
#>
#> [[2]]
#> [1] 7 11 5
#>
#> [[3]]
#> [1] 2 7 5
unique(unlist(str_extract_numbers(charvec)))
#> [1] 7 667 11 5 2
Создано в 2018-09-03 с помощью пакета представ (v0.2.0).
Здесь десериализатор пытается угадать имя ваших полей поддержки. Вы можете решить эту проблему, добавив явные сопоставления (атрибуты DataContract / DataMember) следующим образом:
[DataContract]
public class Cat
{
[DataMember]
public string Name { get; set; }
[DataMember]
public string Breed { get; set; }
}
Вы можете сделать это с помощью JavaScriptSerializer
, находящегося в пространстве имен System.Web.Script.Serialization
:
JavaScriptSerializer serializer = new JavaScriptSerializer();
Cat c = serializer.Deserialize<Cat>(jsonString);
У меня есть объекты POCO с автоматическими свойствами, и это прекрасно работает.
EDIT: Я написал о сериализаторах JSON в .NET , которые сравнивают этот сериализатор с DataContractJsonSerializer
.
I ' m при условии, что вы передаете данные через веб-службу. Если вы используете класс WebService с атрибутом ScriptMethod без комментариев, методы веб-службы могут читать JSON изначально. Они даже используют тот же JavaScriptSerializer, о котором говорилось выше. Если вы используете WCF, я немного не понимаю логики.
Но убедитесь, что ваш объект JSON возвращает данные для КАЖДОГО свойства в вашем классе. В вашей ошибке упоминается свойство Breed, которого нет в вашем примере.
Кроме того, на стороне JavaScript, применительно к динамической природе JavaScript, легко добавлять новые свойства к вашим объектам. Иногда это может привести к циклическим ссылкам. Вам следует удалить любые дополнительные данные, которые вы могли добавить (точно так же, как вы отправляете данные через веб-метод, а затем добавьте их снова, когда закончите).
Если вы используете класс WebService с атрибутом ScriptMethod без комментариев, методы веб-службы могут читать JSON изначально. Они даже используют тот же JavaScriptSerializer, о котором говорилось выше. Если вы используете WCF, я немного не понимаю логики.Но убедитесь, что ваш объект JSON возвращает данные для КАЖДОГО свойства в вашем классе. В вашей ошибке упоминается свойство Breed, которого нет в вашем примере.
Кроме того, на стороне JavaScript, применительно к динамической природе JavaScript, легко добавлять новые свойства к вашим объектам. Иногда это может привести к циклическим ссылкам. Вам следует удалить любые дополнительные данные, которые вы могли добавить (точно так же, как вы отправляете данные через веб-метод, а затем добавьте их снова, когда закончите).
Если вы используете класс WebService с атрибутом ScriptMethod без комментариев, методы веб-службы могут читать JSON изначально. Они даже используют тот же JavaScriptSerializer, о котором говорилось выше. Если вы используете WCF, я немного не понимаю логики.Но убедитесь, что ваш объект JSON возвращает данные для КАЖДОГО свойства в вашем классе. В вашей ошибке упоминается свойство Breed, которого нет в вашем примере.
Кроме того, на стороне JavaScript, применительно к динамической природе JavaScript, легко добавлять новые свойства к вашим объектам. Иногда это может привести к циклическим ссылкам. Вам следует удалить любые дополнительные данные, которые вы могли добавить (точно так же, как вы отправляете данные через веб-метод, а затем добавьте их снова, когда закончите).
методы веб-службы могут читать JSON изначально. Они даже используют тот же JavaScriptSerializer, о котором говорилось выше. Если вы используете WCF, я немного не понимаю логики.Но убедитесь, что ваш объект JSON возвращает данные для КАЖДОГО свойства в вашем классе. В вашей ошибке упоминается свойство Breed, которого нет в вашем примере.
Кроме того, на стороне JavaScript, применительно к динамической природе JavaScript, легко добавлять новые свойства к вашим объектам. Иногда это может привести к циклическим ссылкам. Вам следует удалить любые дополнительные данные, которые вы могли добавить (точно так же, как вы отправляете данные через веб-метод, а затем добавьте их снова, когда закончите).
методы веб-службы могут читать JSON изначально. Они даже используют тот же JavaScriptSerializer, о котором говорилось выше. Если вы используете WCF, я не совсем понимаю логику.Но убедитесь, что ваш объект JSON возвращает данные для КАЖДОГО свойства в вашем классе. В вашей ошибке упоминается свойство Breed, которого нет в вашем примере.
Кроме того, на стороне JavaScript, применительно к динамической природе JavaScript, легко добавлять новые свойства к вашим объектам. Иногда это может привести к циклическим ссылкам. Вам следует удалить любые дополнительные данные, которые вы могли добавить (точно так же, как вы отправляете данные через веб-метод, а затем добавьте их снова, когда закончите).
Но убедитесь, что ваш объект JSON возвращает данные для КАЖДОГО свойства в вашем классе. В вашей ошибке упоминается свойство Breed, которого нет в вашем примере.
Кроме того, на стороне JavaScript, применительно к динамической природе JavaScript, легко добавлять новые свойства к вашим объектам. Иногда это может привести к циклическим ссылкам. Вам следует удалить любые дополнительные данные, которые вы могли добавить (точно так же, как вы отправляете данные через веб-метод, а затем добавьте их снова, когда закончите).
Но убедитесь, что ваш объект JSON возвращает данные для КАЖДОГО свойства в вашем классе. В вашей ошибке упоминается свойство Breed, которого нет в вашем примере.
Кроме того, на стороне JavaScript, применительно к динамической природе JavaScript, легко добавлять новые свойства к вашим объектам. Иногда это может привести к циклическим ссылкам. Вам следует удалить любые дополнительные данные, которые вы могли добавить (точно так же, как вы отправляете данные через веб-метод, а затем добавьте их снова, когда закончите).
Ответ Бареты Решил k__backingField Bloat для меня. Просто крошечное дополнение, которое вы можете украсить этот класс для автоматического сериализации в XML или JSON аналогичным образом:
[Serializable, XmlRoot, DataContract]
public class Cat
{
[XmlElement]
[DataMember]
public string Name { get; set; }
[XmlElement]
[DataMember]
public string Breed { get; set; }
}
... а затем использовать DataContractjsonserializer или XMLSerializer, чтобы приготовить его для вашей конечной точки.