Конвертировать object php в object JSON или в object c#

199
08 марта 2019, 07:40

В базе данных MYSQL хранятся данные в формате object php например так

a:3:{s:8:"Цвет";a:1:{i:0;s:1:"*";}s:24:"Шарнир";a:1:{i:0;s:1:"*";}s:14:"Уголок";a:1:{i:0;s:49:"Левый";}}

Используется dotnet core 2.1.4. Чем можно десерилизовать эти данные например в JSON или object c#?

Answer 1

Написал метод десирилизации объекта php в объект с#. Может кому пригодится:

 /// <summary>
    ////Парсер для объекта PHP
    /// </summary>
    /// <param name="phpObject">Строка для разбора</param>
    /// <returns></returns>
    public List<Tuple<string, List<string>>> ParserPHPObject(string phpObject)
    {
        try
        {
            var result = new List<Tuple<string, List<string>>>();
            foreach (var item in phpObject.Split(new string[] { "{s" }, StringSplitOptions.None))
            {
                foreach (var itemf in item.Split(new string[] { "}s" }, StringSplitOptions.None))
                {
                    if (itemf.Length > 4)
                    {
                        List<string> attr = new List<string>();
                        string par = itemf.Split(';')[0].Split(':').LastOrDefault();
                        var var1 = itemf.Split(new string[] { ";a" }, StringSplitOptions.None)[1].Split(';');
                        foreach (var bb in var1)
                        {
                            if (!bb.Contains("i:") && !string.IsNullOrEmpty(bb))
                            {
                                if (bb.Contains("s:49"))
                                {
                                    attr.Add("http:" + bb.Split(':').LastOrDefault());
                                }
                                else if (bb.Contains("s:"))
                                {
                                    attr.Add(bb.Split(':').LastOrDefault());
                                }
                            }
                        }
                        var tp = Tuple.Create(par, attr);
                        result.Add(tp);
                    }
                }
            }
            return result;
        }
        catch
        {
            return null;
        }
    }
READ ALSO
Как упростить код?

Как упростить код?

раз уж никто не пишет, то замечу, что проверка в коде

172
Найти файл и отправить на Email

Найти файл и отправить на Email

подскажите пожалуйста как средствами PHP найти и отправить файл на Email? Пробовал вот так, отправляет только имя файла

138
Две пары двойных кавычек в json

Две пары двойных кавычек в json

Приходит мне от API такой вот json:

118
Laravel передача информации между сервисами через очередь

Laravel передача информации между сервисами через очередь

Вопрос такой, есть два микро-сервиса, один создает транзакцию и кидает в очередь (rabbitmq) второй сервис должен ее подхватить и обработатьСтолкнулись...

136