Привет всем, у меня есть следующий 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 status update.
[story_tags] => stdClass Object
etc etc....
Я знаю, почему я получаю массив (asArray();), но мне нужно преобразовать его в JSON. Я пытаюсь сделать это через VB.net JSON.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). Deserialize означает, что строка будет преобразована в объекты или массивы.
Таким образом, метод, который вы используете, на самом деле ожидает JSON вместо его создания.