簡體   English   中英

通過URL傳遞JSON或類似對象並在PHP中進行解析

[英]Passing JSON or similar object via URL and parsing in PHP

情況如下:

由於無法控制的情況,我正在編寫一個僅通過JSON公開數據的后端。

UI是純HTML / jQuery。 用戶界面中的所有查詢都會產生一個JSON對象(通常非常復雜)。 我需要UI才能向我傳遞一個復雜的對象,其中包括ID和字符串的多個列表。

最簡單的實現方法是什么?

  • 多個GET / POST參數,其中一些是列表,例如&List=1,2,3
  • 完整的JSON對象作為單個參數,例如?Data={"List"=[1,2,3]}
  • 完全其他的東西。

如果您做過類似的事情,我會對您的經驗感興趣-特別是在將對象定義傳遞給客戶端方面。

在這種情況下,請想象以下數據包...

{
    Id: 1,
    Status: "Processing",
    RecordTypeAIds: (1,2,3)
    RecordTypeBIds: (4,5,6)
    RecordTypeCIds: null
}

將信息從jQuery發送到PHP的最新穎的方法是什么(記住,列表可能嵌套n-deep)

感謝您的任何幫助,您可以提供。

只是把我的意見扔在那里。 我更喜歡JSON,只需通過您首選的方法(GET / POST)發送復雜的對象,它們就可以使用globals($ _ POST ['key'])和json_decode()幾乎立即成為PHP中的對象/數組。 如果您使用jQuery,則使用$ .ajax(),$。get()或$ .post()可以輕松實現“發送”部分。 POST理論上沒有數據限制,因此對於任意大的數據集,它是更可取的。

使用(幾乎)所有JSON解決方案Data = {... your object ...}。 在PHP中,您需要$ data = json_decode($ _ REQUEST ['Data']);。 jQuery對於瀏覽器端支持具有類似的功能。

對於HTML表單和常規URL ..編寫一個服務器端適配器,該適配器將$ _REQUEST中的參數轉換為等效的$ data結構並調用與上述相同的代碼。 如果用PHP數組符號命名HTML字段,則可以像$ data = $ _REQUEST;這樣簡單。

HTML中的示例

<input type='hidden' name='Status' value='Processing'>
<input type='hidden' name='RecordTypeAIds[0]' value='1'>
<input type='hidden' name='RecordTypeAIds[1]' value='2'>
<input type='hidden' name='RecordTypeAIds[2]' value='3'>

在$ _REQUEST中顯示為示例結構(的一部分)。

表單元素中PHP數組表示法的問題是...如果您需要從JSON填充這樣的表單,則必須在Javascript中編寫一個稍微復雜的解碼函數,以將JSON結構映射到正確的字段名稱中。 沒有避免解碼功能的好方法,因為DOM表單名稱系統是扁平的,其中嵌套了JSON字段名稱,對於JSON數組元素,名稱(索引)是隱式的。 在表單元素名稱中使用PHP數組表示法之外的任何其他方法只會使服務器端工作更多。

如果要將JSON對象傳遞給PHP,則默認情況下,所需的方法包含在5.2.0及更高版本中。 http://www.php.net/manual/en/function.json-decode.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM