2011-11-07 132 views
1

我正在尋找可以將json轉換爲sql的PHP庫。 也就是說,基於某些定義或模式,它應該生成插入/更新語句。Json to Sql翻譯

任何人都知道這樣的圖書館?我問了很少的搜索引擎,沒有什麼會彈出。

實施例:

JSON

{ 
    "person_id": 1, 
    "name": "John Doe", 

    "roles": ["admin","editor","regular_user"], 

    "friends": 
    [ 
     {"person_id": 10, "name": "Johny Walker", "is_best_friend": true}, 
     {...} // more friends 
    ] 
} 

表結構:

Persons: person_id (int), name (text) 
Roles: person_id (int), role (text) 
Friends: person_id (int), is_best_friend (bool) 

這僅僅是例子。

我心目中什麼是XSLT般的轉變。我明白這樣的系統會非常複雜,但是這個簡單的例子可以毫無問題地被翻譯出來。

我想實現它自己的,但我很懶,所以先詢問。

高級JSON東西,比如參考,也可以爲它非常適合到關係表(可能有限制)來實現。

+0

什麼?你能否更新問題並添加一些文字?你是否模仿模型轉型? – FloydThreepwood

+0

我意識到這不是真正解決你的問題,但你有沒有考慮過像CouchDB這樣的面向文檔的數據庫(http://couchdb.apache.org/)? –

+0

@Mike Steinert - 是的,它與我正在做的不一致。 – Peter

回答

2

SQL數據結構是簡單的,並具有嚴格的「硬編碼」的結構,但可以JSON存儲對象,至極被繼承一個到另一個。我不認爲,這樣的工具存在。即使身份證確實,它也會有很多限制。

+0

嗯,我找到了一些東西 - https://github.com/hay/json2sql – Casey

+0

這是一個簡單的腳本,可以將任何數組映射到一系列INPUT語句,而不是多表支持,無模式映射。 – FloydThreepwood

0

你真正需要尋找一個ORM

典型的編程結構從SQL的方式工作,這就是所謂的Object-relational impedance mismatch有很大的不同。嘗試將對象或數組結構映射或轉換爲數據庫模式不是一件容易的事情,因爲它需要關於兩個數據結構的知識以及關於每個值的規則集。

+0

謝謝,我目前正在使用教條,不喜歡它,所以研究一些瘋狂的想法。 – Peter

+0

我也在使用Doctrine,並且我明白了你的觀點;)。但我無法想象其他任何能夠成爲架構的廣泛範圍,而不會變成一團糟。 – FloydThreepwood