0

私は次のようなJSON文字列を持っています:

a: 2: {
    s: 4: "unit";
    s: 2: "h1";
    s: 5: "value";
    s: 40: "Mercedes-Benz A 45 AMG / 340 PS / Allrad";
}

今、奇妙なキーのためにそれをどうするかわかりません(「s」は文字列の長さを意味すると思います)。

このように使用すると、何も解析できません(php json_decodeまたはobj-c SBJsonParserを使用)。そのhtmlをphpで生成する方法はありますか、または最後の値のみを読み取るにはどうすればよいですか?

前もって感謝します

4

4 に答える 4

2

これは有効な JSON ではないため、json パーサーはそれを読み取らず、通常の文字列として扱い、文字列操作を使用して必要なものを取得できます。

PHP で最後の値を取得するには:

$str = ...//your json string
$lastValue = substr($str,strripos($str,'s:'));

これは (サンプル入力によると) 返されます: "40: "Mercedes-Benz A 45 AMG / 340 PS / Allrad";"

于 2012-07-10T14:13:15.727 に答える
1

上記のJSON形式は絶対に無効です。

{
    "a": {
        "2": [
            { "s": { "4": "unit" } },
            { "s": { "2": "h1" } },
            { "s": { "5": "value" } },
            { "s": { "40": "Mercedes-Benz A 45 AMG / 340 PS / Allrad" } }
        ]
    }
}

これは有効なJSON形式になります

于 2012-07-10T14:32:00.103 に答える
0

最初は文字列として扱うことをお勧めします。次に、文字列操作を使用して「a:」と「s:」を取り除きます。他のリクエストは他のタイプを返す可能性があります (これらの文字がデータ型を示していると私が正しければ)。次に、JSON パーサーで解析してみてください。

ただし、保証はありません:)これらの数値が有効なJSONであるか、引用符でカプセル化する必要があるかは、頭の中ではっきりとはわかりません。

于 2012-07-10T14:22:40.470 に答える