Как вы отправляете его на сервер, зависит от вас - скрытое поле, вызов AJAX, все, что вы предпочитаете Получив строку на сервере, вам понадобятся 2 вещи:
- Представление на стороне сервера C #
этого объекта
- Конвертер, чтобы пойти
из JSON в это представление C #.
Давайте немного скорректируем ваш пример, потому что «myCollection» в вашем примере - это объект, а не коллекция. Поэтому мы назовем это myObject. Во-вторых, мы будем считать, что «данные» - это массив строк. Это может быть что угодно, но мы будем простыми.
var myObject = {
data: ["string1","string2"]
};
Мы также предполагаем, что вы используете DataContractJsonSerializer, так что вы можете легко отобразить два разных стиля case ... JavaScript обычно является camelCase, а C # обычно ProperCase. Итак, в C # это будет:
[DataContract(Name="myObjectType")]
public class MyObjectType{
[DataMember(Name="data")]
public string[] Data { get; set; }
}
Теперь у вас есть два представления одной и той же структуры, одно в c #, другое в JavaScript. Для преобразования из одного в другое мы можем использовать встроенный DataContractJsonSerializer, например:
public static T Deserialize<T>(string json)
{
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
return (T)serializer.ReadObject(ms);
}
}
... в результате последний вызов:
MyObjectType myObject = Deserialize<MyObjectType>(incomingString);