2016-07-13 14 views
0

次の形式のデータを含むjavascriptファイルがあります。jsonオブジェクトを含む.jsファイルからmysqlデータベースにデータをインポート

index = { 
    "me" : { 
    "id" : "524bd089-2a7b-4a71-ba23-16354d6351ae", 
    "firstName" : "A=", 
    "lastName" : "T", 
    "pictureName" : "66s2c.jpg", 
    "username" : "a-t" 
    }, 
    "spaces" : [ { 
    "org" : { 
     "id" : "524bd089-2a7b-4a71-ba23-16354d6351ae", 
     "firstName" : "An", 
     "lastName" : "Tuli", 
     "pictureName" : "66s2c.jpg", 
     "username" : "arli" 
    } 
    }, { 
    "user" : { 
     "id" : "60c4a171-172f-4f66-9014-8b4cf3e476e6", 
     "firstName" : "Ban", 
     "lastName" : "Idris", 
     "pictureName" : "../../../../default-pic/butterfly_200.png", 
     "username" : "banun-idris" 
    } 
    } ] 
} 
users["524bd089-2a7b-4a71-ba23-16354d6351ae"] = { 
    "id" : "524bd089-2a7b-4a71-ba23-16354d6351ae", 
    "firstName" : "A", 
    "lastName" : "T", 
    "pictureName" : "66s2c.jpg", 
    "username" : "a", 
    "libraries" : [ "lEy27AZavfSR", "l0yApAoo2l4b", "lJl22YOtacxY", "l0UhMCvrMmka", "lJMWpIoFnaK4", "lCZ9cYYjVJcv", "l8kynpyoaej7" ] 
} 
libraries["lEy27AZavfSR"] = { 
    "id" : "lEy27AZavfSR", 
    "name" : "My Main Library", 
    "description" : null, 
    "numKeeps" : 0, 
    "keeps" : [ ] 
} 

keeps["k4r5UIugqgfk"] = { 
    "id" : "k4r5UIugqgfk", 
    "keptAt" : 1449613295000, 
    "lastActivityAt" : 1449613295000, 
    "title" : "", 
    "url" : "", 
    "note" : null, 
    "tags" : [ ], 
    "libraries" : [ "lJl22YOtacxY" ], 
    "summary" : "", 
    "messages" : [ ] 
} 

私はこのタイプのフォーマットからmysqlデータベースにデータをインポートする必要があります。私はこの

を行うためのアプローチを確定し、見極めることはできません

私は、PHPファイルにファイルの内容を取得し、配列の文字列に変換しようとしましたが、私は、ヌルの結果を得ます。

$jsondata = file_get_contents('trial_data.js'); 
$data = json_decode($jsondata, true); 
var_dump($data); 

私は私が取ることができると思う第二のアプローチは、jqueryのファイルのデータをロードし、それをデータベースに追加したPHPファイルにAJAXを使用して、それを送っています。

私はどのアプローチをとるべきか、どうやってそれを進めるべきか考えています。

プラス私は、私はあなたのデータがあるので、私は情報

+0

がありますどのくらいのデータによって決まります。表示されているものは、手動でjsonに変換し、約2分でPHPで簡単に読むことができます。たくさんある場合は、htmlページにロードし、PHPにそれをロードするのに時間がかかりません(時間は数分かかりません) – charlietfl

+0

JSON.stringify()を使用してjavascriptで配列をエンコードしましたか? – Borna

+0

@charlietfl私の問題は時間ではありませんが、PHPの$データがNULLを返す問題です。PHP配列 –

答えて

1

の残りの部分を取得する必要があるため、私と組織オブジェクトからIDを取得することができるように、最初のインデックス配列からIDを把握する必要がありますいない有効なJSONは、あなたがこのように、それを解析するために正規表現を使用することができます。

$file_content = file_get_contents('trial_data.js'); 
preg_match_all("/(\w+)\[\"([^\]]*)\"\]\s*\=\s*\{([^\}]*)\}/", $file_content, $matches); 
foreach ($matches[1] as $key => $value) { 
    $data[$value][$matches[2][$key]] = json_decode('{'.$matches[3][$key].'}'); 
} 
print_r($data); 
//For example: 
echo $data['users']['524bd089-2a7b-4a71-ba23-16354d6351ae']->pictureName; 
//Output: 66s2c.jpg 

デモ:https://3v4l.org/fW5gH

+0

私はキーを扱うために私の答えを更新しました! –

+0

私は別の問題がある、私はまた、ファイルの先頭から必要なユーザーの情報を取得する必要があります。指数= { "私":{ "ID": "524bd089-2a7b-4a71-ba23-1635451ae"、 "firstNameの": "A"、 "lastNameの": "T"、 "もPictureName": " 66s2c。JPG " "ユーザ名": "AY" }、{ "ユーザ":{ "ID": "60c4a171-172f-4f66-9014-8b4cf3e476e6"、 "firstNameの": "B"、 ""pictureName": ""、 "username": "bi" } }私は私のフィールドからIDを必要とする私は同じのための正規表現を把握することができますか? –

+0

あなたはあなたの質問にそれを加えてください。 –

関連する問題