Как преобразовать строку Json в список в c# - PullRequest
0 голосов
/ 15 марта 2020

В веб-сервисе я пытаюсь преобразовать jzonString в список.

{
    "name": "Test",
    "Fname": "Testing",
    "S1": "Content1",
    "S2": "Content2",
    "S3": "Content3"
}
[WebMethod]
        public int Create(string Detils, string Companyid)
        {
            try
            {

                dynamic ScheduleShift = new JavaScriptSerializer().DeserializeObject(Detils);
                \\ i need to set data to list or to an object

                InvDetails objDetails = new InvDetails();
                List<InvDetails> lstDetails = new List<InvDetails>();

                return objDetails.CreateInvDetails(objDetils);
            }
            catch (Exception ex)
            {
                // Abort Transaction
                throw ex;
            }
        }

Создан другой файл библиотеки, чтобы объявить объект и вставить в db

 public class Inventory
    {
        CommonExecDAL CommonExecDAL = new CommonExecDAL();
        public string name { get; set; }
        public string Fname { get; set; }
        public string S1 { get; set; }
        public string S2 { get; set; }
        public string S3 { get; set; }
        public int intCompanyId { get; set; }


        public int CreateInvComputer(InvDetails objInvDetails)
        {

            SqlParameter[] arParms = new SqlParameter[6];
            .........

        }
    }

Ответы [ 3 ]

2 голосов
/ 15 марта 2020

Если вы не хотите создавать класс: Вы можете использовать метод JObject.Parse() для динамической десериализации.

0 голосов
/ 15 марта 2020

Просто добавьте ссылку на System.Web.Extensions, (встроенный в DLL. NET 4+):

JavaScriptSerializer jss = new JavaScriptSerializer();
var jsonObj =jss.Deserialize<dynamic>(jsonString);
0 голосов
/ 15 марта 2020

Как сказал @SirRufo, вы можете десериализовать массив JSON в список. но ваша JSON строка в образце является одним объектом!

В любом случае, вы десериализуете JSON строку для объекта с использованием JSON. Net.

Сначала у вас есть класс для Deserialize:

public class Data
{
    public string name { get; set; }
    public string Fname { get; set; }
    public string S1 { get; set; }
    public string S2 { get; set; }
    public string S3 { get; set; }
}

Затем вы можете десериализовать JSON строку в C# class:

var obj = JsonConvert.DeserializeObject<Data>(jsonString);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...