Rajesh R
Rajesh R

Reputation: 125

Decoding string... to array format

I'm trying to decode return string to array... i dont know whether its a json format or not return code look like this.. what i doing wrong?

[
    [
        ["संकल्प", "resolution", "Saṅkalpa", ""]
    ],
    [
        ["noun", ["प्रस्ताव", "संकल्प", "समाधान", "स्थिरता", "चित्त की दृढ़ता", "प्रण"],
            [
                ["प्रस्ताव", ["offer", "proposal", "motion", "resolution", "proposition", "offering"], , 0.69811249],
                ["संकल्प", ["resolution", "resolve", "determination", "pledge", "solemn vow"], , 0.53526145],
                ["समाधान", ["solution", "resolution", "settlement", "key", "resolvent", "redress"], , 0.064934582],
                ["स्थिरता", ["stability", "fixture", "fastness", "durability", "serenity", "resolution"], , 4.8327973e-05],
                ["चित्त की दृढ़ता", ["resolution", "strong will"], , 4.7578716e-05],
                ["प्रण", ["pledge", "vow", "capitulation", "determination", "resolution"], , 4.7578716e-05]
            ]
        ]
    ], "en", , [
        ["संकल्प", [4], 1, 0, 999, 0, 1, 0]
    ],
    [
        ["resolution", 4, [
                ["संकल्प", 999, 1, 0],
                ["प्रस्ताव", 0, 1, 0],
                ["समाधान", 0, 1, 0],
                ["संकल्प के", 0, 1, 0],
                ["संकल्प में", 0, 1, 0]
            ],
            [
                [0, 10]
            ], "resolution"
        ]
    ], , , [
        ["en"]
    ], 5
]

Php Code..

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<?php
ini_set ( 'display_errors', 1 );
error_reporting ( E_ALL );

//text
$text = 'resolution'; 
$text = trim ( $text );

//Language Code hi => Hindi
$tl = 'hi'; 

$data = file_get_contents ( "http://translate.google.com/translate_a/t?ie=UTF-8&oe=UTF-8&client=t&sl=en&tl=" . $tl . "&sc=1&text=" . $text );

echo '<pre>';
print_r ( $data );
echo '</pre> <hr/>';

echo '<pre>';
var_dump ( json_decode ( $data, true ) );
echo '</pre>';


?>
</body>
</html>

Upvotes: 1

Views: 156

Answers (2)

Bojangles
Bojangles

Reputation: 101473

The problem with your input string is that there are consecutive (ignoring whitespace) commas. Manually correcting them in JSONLint yields valid JSON.

A very simple (albeit crude) solution is to simply replace all occurrences of more than one consecutive comma (i.e. ,, or ,,,, etc) with a single comma. JSONLint then validates your string as valid JSON, and json_decode() returns an array, as it should.

A regex replace should do the trick:

$string = "[ 'json' ]";
$string = preg_replace('/,(\s*,)+/', ',', $string);

$arr = json_decode($string);

$arr is now an array (not an object as some may assume) representing your JSON data.

Upvotes: 2

Mangiucugna
Mangiucugna

Reputation: 1762

There are some part in the input with only , , like ], , , [

These are making your data non-JSONable, you could strip em or fill with blank like ,"",

Use http://jsonlint.com/ to fix the input, is very useful

EDIT, this is valid:

[
    [
        [
            "संकल्प",
            "resolution",
            "Saṅkalpa",
            ""
        ]
    ],
    [
        [
            "noun",
            [
                "प्रस्ताव",
                "संकल्प",
                "समाधान",
                "स्थिरता",
                "चित्त की दृढ़ता",
                "प्रण"
            ],
            [
                [
                    "प्रस्ताव",
                    [
                        "offer",
                        "proposal",
                        "motion",
                        "resolution",
                        "proposition",
                        "offering"
                    ],
                    "",
                    0.69811249
                ],
                [
                    "संकल्प",
                    [
                        "resolution",
                        "resolve",
                        "determination",
                        "pledge",
                        "solemn vow"
                    ],
                    "",
                    0.53526145
                ],
                [
                    "समाधान",
                    [
                        "solution",
                        "resolution",
                        "settlement",
                        "key",
                        "resolvent",
                        "redress"
                    ],
                    "",
                    0.064934582
                ],
                [
                    "स्थिरता",
                    [
                        "stability",
                        "fixture",
                        "fastness",
                        "durability",
                        "serenity",
                        "resolution"
                    ],
                    "",
                    0.000048327973
                ],
                [
                    "चित्त की दृढ़ता",
                    [
                        "resolution",
                        "strong will"
                    ],
                    "",
                    0.000047578716
                ],
                [
                    "प्रण",
                    [
                        "pledge",
                        "vow",
                        "capitulation",
                        "determination",
                        "resolution"
                    ],
                    "",
                    0.000047578716
                ]
            ]
        ]
    ],
    "en",
    "",
    [
        [
            "संकल्प",
            [
                4
            ],
            1,
            0,
            999,
            0,
            1,
            0
        ]
    ],
    [
        [
            "resolution",
            4,
            [
                [
                    "संकल्प",
                    999,
                    1,
                    0
                ],
                [
                    "प्रस्ताव",
                    0,
                    1,
                    0
                ],
                [
                    "समाधान",
                    0,
                    1,
                    0
                ],
                [
                    "संकल्प के",
                    0,
                    1,
                    0
                ],
                [
                    "संकल्प में",
                    0,
                    1,
                    0
                ]
            ],
            [
                [
                    0,
                    10
                ]
            ],
            "resolution"
        ]
    ],
    "",
    "",
    [
        [
            "en"
        ]
    ],
    5
]

Upvotes: 2

Related Questions