Привет всем, у меня есть следующий скрипт PHP, который собирает некоторую информацию из API Facebook:
$request = (new FacebookRequest(
$session, 'GET', '/me/home'
));
$response = $request->execute();
$graphObject = $response->getGraphObject()->asArray();
print_r($graphObject);
Тем не менее, вывод этого выглядит так:
Array
(
[data] => Array
(
[0] => stdClass Object
(
[id] => xxxxxxx78552_74905xxxxxxxx
[from] => stdClass Object
(
[id] => 72xxxxxx05xxxx52
[name] => Tom xxxxxx
)
[story] => Tom xxxx shared xxxxx xxxxx's status update.
[story_tags] => stdClass Object
etc etc....
Я знаю, почему я получаю массив (AsArray ();) но мне нужно преобразовать его в JSON. Я пытаюсь сделать это через JSON.net VB.net:
result = mainPage.theNewsFeed
objWriter = New System.IO.StreamWriter(Application.StartupPath & "\home.json", False, Encoding.UTF8)
objWriter.Write(JSONDeserialize(result).ToString)
objWriter.Close()
Этот код выше производит эту ошибку:
При анализе значения обнаружен неожиданный символ: A. Путь », строка 0, позиция 0.
на линии:
objWriter.Write(JSONDeserialize(result).ToString)
Что я могу понять, так как это не в правильном формате JSON.
Как я могу преобразовать это или используя PHP или VB.net, чтобы получить это в правильном формате?
Хорошо, чтобы вывести массив как JSON в PHP, вы хотите использовать его функцию json_encode и использовать ваш массив в качестве параметра. Он вернет строку JSON.
$json = json_encode($graphObject);
У меня нет опыта работы с VB.net, но я предполагаю, что вы используете неправильный метод.
Сериализация означает, что объект или массив будут преобразованы в строковое представление (например, JSON).
Десериализация означает, что строка будет преобразована в объекты или массивы.
Таким образом, метод, который вы используете, на самом деле ожидает JSON вместо его создания.
Других решений пока нет …