@suhuxa1

Json decode не пропускает цифры в объектах?

Приветствую!
Получаю json массив информации. В нем некоторая часть названий содержит только цифры. Так после того, как я делаю json_decode - эта информация просто стирается. Как перевести массив json в объект или обычный массив, при этом сохранив всю информацию?
Скрины:
Вот данные, которые приходят:
1f6870fc1c.jpg
А вот данные, которые остаются после того, как я делаю json_decode:
0252ad55cf.jpg

Как видно из скринов, пропала информация там, где названия содержали только цифры.

UPD. Вариант json.
{"1337":{"Id":"20824","Url":"/coins/1337/overview","ImageUrl":"/media/350976/1337.png","Name":"1337","CoinName":"1337","FullName":"1337 (1337)","Algorithm":"X13","ProofType":"PoW/PoS","FullyPremined":"0","TotalCoinSupply":"314159265359","PreMinedValue":"2353115.7216","TotalCoinsFreeFloat":"N/A","SortOrder":"577"}}
  • Вопрос задан
  • 476 просмотров
Пригласить эксперта
Ответы на вопрос 2
nazarpc
@nazarpc
Open Source enthusiast
Проблема не в JSON, чего-то вы не то делаете, о чем говорите, всё отлично работает:

var_dump(json_decode('{"1337":{"Id":"20824","Url":"/coins/1337/overview","ImageUrl":"/media/350976/1337.png","Name":"1337","CoinName":"1337","FullName":"1337 (1337)","Algorithm":"X13","ProofType":"PoW/PoS","FullyPremined":"0","TotalCoinSupply":"314159265359","PreMinedValue":"2353115.7216","TotalCoinsFreeFloat":"N/A","SortOrder":"577"}}'));

class stdClass#2 (1) {
  public $1337 =>
  class stdClass#1 (13) {
    public $Id =>
    string(5) "20824"
    public $Url =>
    string(20) "/coins/1337/overview"
    public $ImageUrl =>
    string(22) "/media/350976/1337.png"
    public $Name =>
    string(4) "1337"
    public $CoinName =>
    string(4) "1337"
    public $FullName =>
    string(11) "1337 (1337)"
    public $Algorithm =>
    string(3) "X13"
    public $ProofType =>
    string(7) "PoW/PoS"
    public $FullyPremined =>
    string(1) "0"
    public $TotalCoinSupply =>
    string(12) "314159265359"
    public $PreMinedValue =>
    string(12) "2353115.7216"
    public $TotalCoinsFreeFloat =>
    string(3) "N/A"
    public $SortOrder =>
    string(3) "577"
  }
}

var_dump(json_decode('{"1337":{"Id":"20824","Url":"/coins/1337/overview","ImageUrl":"/media/350976/1337.png","Name":"1337","CoinName":"1337","FullName":"1337 (1337)","Algorithm":"X13","ProofType":"PoW/PoS","FullyPremined":"0","TotalCoinSupply":"314159265359","PreMinedValue":"2353115.7216","TotalCoinsFreeFloat":"N/A","SortOrder":"577"}}', true));

array(1) {
  [1337] =>
  array(13) {
    'Id' =>
    string(5) "20824"
    'Url' =>
    string(20) "/coins/1337/overview"
    'ImageUrl' =>
    string(22) "/media/350976/1337.png"
    'Name' =>
    string(4) "1337"
    'CoinName' =>
    string(4) "1337"
    'FullName' =>
    string(11) "1337 (1337)"
    'Algorithm' =>
    string(3) "X13"
    'ProofType' =>
    string(7) "PoW/PoS"
    'FullyPremined' =>
    string(1) "0"
    'TotalCoinSupply' =>
    string(12) "314159265359"
    'PreMinedValue' =>
    string(12) "2353115.7216"
    'TotalCoinsFreeFloat' =>
    string(3) "N/A"
    'SortOrder' =>
    string(3) "577"
  }
}
Ответ написан
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Используйте ассоциативный массив, переменные не могут начинаться с цифр, поэтому объект после декода их не содержит.

php.net/manual/en/function.json-decode.php
assoc
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы