Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
ninja2
969 / 188 / 32
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
#1

Массив из php получить в C#

07.05.2016, 15:49. Просмотров 1090. Ответов 9
Метки нет (Все метки)

Привет. Есть массив данных в php. Я его сохранил в Json формате в файл
Можно как то получить этот массив в C# windowsform?

Как получить по простому данные из php в C# ???

может есть функции там сериализовал в php и ансериализовал в C#?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2016, 15:49
Ответы с готовыми решениями:

Записать массив строк в файл, а потом получить такой же массив из этого файла
Есть вот такой массив, который формируется из разных чтрок: string temp =...

Имеется массив чисел, получить список вида {число, количество вхождений числа в массив}
Здравствуйте! Нужна Ваша помощь. имеется массив чисел, получить список вида...

Получить массив из php в jquery
Вот пример кода: <script type="text/javascript">...

Получить данные в массив из php скрипта
Помогите пожалуйста с решением такой задачи: В коде html странице есть некий...

Как получить массив данных из HTML формы (PHP POST)?
Здравствуйте. Помогите, пожалуйста, разобраться с вопросом. Мне необходимо...

9
golubyatnikovtv
176 / 176 / 95
Регистрация: 30.04.2016
Сообщений: 478
Завершенные тесты: 3
07.05.2016, 15:57 #2
Здравствуйте!

Вы все правильно сделали, сериализовали в php, сохранили в файл.

Для работы с JSON в C# наиболее распространенная библиотека JSON.NET от NewtonSoft.
Здесь пример десериализации json-файла: http://www.newtonsoft.com/json/help/...erFromFile.htm

Установить библиотеку можно также через Nuget по соответствующему запросу "json.net"
0
ninja2
969 / 188 / 32
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
07.05.2016, 20:11  [ТС] #3
Цитата Сообщение от golubyatnikovtv Посмотреть сообщение
Здесь пример десериализации json-файла: http://www.newtonsoft.com/json/help/...erFromFile.htm
Та нет это не то, мне нужно в массив сохранить, а эта не сохраняет в массив, а только в объект. Я уже пробовал ее не получилось.

Та забил на С# , уже забыл сам синтаксис что как делать, решил все на php делать. С# редкий костыль, там вспоминать много и очень медленно что то разрабатывать, на php намного быстрее и удобней.
0
Ev_Hyper
Заблокирован
07.05.2016, 23:07 #4
Цитата Сообщение от ninja2 Посмотреть сообщение
Та нет это не то, мне нужно в массив сохранить, а эта не сохраняет в массив, а только в объект.
ninja2, сразу видно, что вы даже ссылку, которую вам дали прочесть не удосужились.
Боюсь спросить, массив это не объект?

Цитата Сообщение от ninja2 Посмотреть сообщение
Та забил на С# , уже забыл сам синтаксис что как делать, решил все на php делать. С# редкий костыль, там вспоминать много и очень медленно что то разрабатывать, на php намного быстрее и удобней.
холивары разводить - в другой раздел.
1
ninja2
969 / 188 / 32
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
08.05.2016, 01:54  [ТС] #5
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
ninja2, сразу видно, что вы даже ссылку, которую вам дали прочесть не удосужились.
Боюсь спросить, массив это не объект?
Не смотрел, там из гетиг стардет
C#
1
Product deserializedProduct = JsonConvert.DeserializeObject<Product>(output);
У меня строка из файла переведена в Json из php скприпта, в ней массив. и что мне вместо Product нужно было прописать. Наверно string, может заработало.
0
Usaga
Эксперт .NET
4884 / 3278 / 585
Регистрация: 21.01.2016
Сообщений: 12,920
Завершенные тесты: 2
08.05.2016, 06:44 #6
ninja2, может так:

C#
1
Product[] deserializedProducts = JsonConvert.DeserializeObject<Product[]>(output);
0
Someone007
2177 / 1766 / 798
Регистрация: 09.05.2015
Сообщений: 4,365
Завершенные тесты: 1
08.05.2016, 07:11 #7
Цитата Сообщение от ninja2 Посмотреть сообщение
У меня строка из файла переведена в Json из php скприпта, в ней массив. и что мне вместо Product нужно было прописать. Наверно string, может заработало.
Если бы вы привели пример данной строки, проблема бы решилась гораздо быстрее, и нам не пришлось бы гадать что там у вас за массив...

Например, если у вас массив строк типа, то десериализовать его можно примерно так

C#
1
2
3
string json = @"['Starcraft','Halo','Legend of Zelda']";
 
List<string> videogames = JsonConvert.DeserializeObject<List<string>>(json);
Вместо List<string> вполне должен раборать string[].
0
ninja2
969 / 188 / 32
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
08.05.2016, 10:21  [ТС] #8
Цитата Сообщение от Someone007 Посмотреть сообщение
Вместо List<string> вполне должен раборать string[].
та наврятли заработало бы, наверно там string
вот код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$mass[]=43;
$mass[]=10;
$mass['hello']='hello';
$mass['b'][3]='one';
print_r($mass);
$json=json_encode($mass);
echo '$json= '.$json;
$mass2=json_decode($json);
print_r($mass2);
die();
?>
Вот что выводится
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Array
(
    [0] => 43
    [1] => 10
    [hello] => hello
    [b] => Array
        (
            [3] => one
        )
 
)
$json= {"0":43,"1":10,"hello":"hello","b":{"3":"one"}}stdClass Object
(
    [0] => 43
    [1] => 10
    [hello] => hello
    [b] => stdClass Object
        (
            [3] => one
        )
 
)
такая от строка-примерно попадает в файл
JSON
1
{"0":43,"1":10,"hello":"hello","b":{"3":"one"}}
нужно ее прочитать и чтобы появился массив
В php это сделать легко json_decode и все не нужно думать какой тип в строке.

Та библиотека подойдет только если из C# сохранить и чтобы знать объект какой. C# низкоуровневый, на нем тяжело что то делать, от php это норм, не напрягаясь можно все делать =)
0
Usaga
Эксперт .NET
4884 / 3278 / 585
Регистрация: 21.01.2016
Сообщений: 12,920
Завершенные тесты: 2
08.05.2016, 10:58 #9
Лучший ответ Сообщение было отмечено edward_freedom как решение

Решение

Цитата Сообщение от ninja2 Посмотреть сообщение
C# низкоуровневый
Где-то мне попадался твой старый пост, где ты тоже самое про С++ говорил. Похоже, у тебя всё низкоуровневое, что осилить не получилось...

Десериализовать строку вида {"0":43,"1":10,"hello":"hello","b":{"3":"one"}} можно с помощью такой конструкции:

C#
1
Dictionary<string, object> objects = JsonConvert.DeserializeObject < Dictionary<string, object>>(@"{""0"":43,""1"":10,""hello"":""hello"",""b"":{""3"":""one""}}");
Но тип хранимого значения придётся определять на ходу.

Добавлено через 2 минуты
ninja2, если PHP позволяет делать такие выкрутасы:
PHP
1
2
3
4
$mass[]=43;
$mass[]=10;
$mass['hello']='hello';
$mass['b'][3]='one';
то это ещё не значит, что этим обязательно нужно пользоваться (тем более так бездумно). В противном случае у тебя все языки будут низкоуровневыми и неудобными.
3
golubyatnikovtv
176 / 176 / 95
Регистрация: 30.04.2016
Сообщений: 478
Завершенные тесты: 3
08.05.2016, 11:08 #10
> Та библиотека подойдет только если из C# сохранить и чтобы знать объект какой

Типы не известны? Не страшно!

C#
1
2
3
4
5
6
7
8
9
10
11
var json = "{"0":43,"1":10,"hello":"hello","b":{"3":"one"}}";       
            dynamic jObject = JObject.Parse(json);
 
            foreach (var prop in jObject)
                Console.WriteLine(prop.Value);
            
            Console.WriteLine("=======");
            Console.WriteLine(jObject["0"].Value);
            Console.WriteLine(jObject["1"].Value);
            Console.WriteLine(jObject.hello.Value);
            Console.WriteLine(jObject.b["3"].Value);
Вывод:
43
10
hello
{
"3": "one"
}
=======
43
10
hello
one

> C# низкоуровневый
Незнание языка не делает его низкоуровневым.
0
08.05.2016, 11:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2016, 11:08

Массив: Получить новый массив P, состоящую из чисел в интервале (a,b), которые не входят в массив H...
Помогите с заданием, пожалуйста :Написать программу, которая формирует новую...

Отправить массив из php(handler, сервер) в php(ajax, клиент)
Дело вот какое: имеется база сотрудников. Клиенту в браузер выдаю список...

Дан массив А[М] — массив чисел. Получить массив С, элементами которого будут модули сумм рядом стоящих чисел
Реализовать в виде модуля набор подпрограмм для выполне¬ния сле-дующих операций...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru