【发布时间】:2017-04-17 05:37:20
【问题描述】:
在特定情况下,我想将 INI 文件内容作为 JSON 数据发送。
这是我的示例内容,我想在 PHP Codeigniter 中 json_encode。
[PRODUCT]
Username=9008
Password=45645646464654
[DialPlan]
DP_Exception=
DP_Rule1=
DP_Rule2=
[Advanced]
CellNumber=
Transport=
isAccountActive=1
[Device]
VirtualMAC=
ToolReset=
Mode=3"
我试过这样:
$message = array(
"Request" =>"AddUpdateBaseINI",
"GMT_Timestamp"=>$timestamp,
"SessionID"=>$session_id,
"tenant_id" =>"1",
"INI"=>"[PRODUCT]
Username=9008
Password=45645646464654
[DialPlan]
DP_Exception=
DP_Rule1=
DP_Rule2=
[Advanced]
CellNumber=
Transport=
isAccountActive=1
[Device]
VirtualMAC=
ToolReset=
Mode=3"
);
$request = json_encode($message);
但这不会产生预期的结果。 如何将“[]”作为字符串而不是 json 对象传递。
预期输出:
{
"Request": "GetDefaultBaseINI",
"GMT_Timestamp": "055110",
"SessionID": "79r46pobm2ah2pk4bjnqs2f5k9g2ubjn",
"INI": "[PRODUCT] Username=9008 Password=45645646464654 [DialPlan] DP_Exception= DP_Rule1= DP_Rule2= [Advanced] CellNumber= Transport= isAccountActive=1 [Device] VirtualMAC= ToolReset= Mode=3"
}
输出我得到 $_POST []:
数组([{"Request":"AddUpdateBaseINI","GMT_Timestamp":"064024","SessionID":"79r46pobm2ah2pk4bjnqs2f5k9g2ubjn","tenant_id":"1","INIID":null,"location_id":"2","product":"bizfms","INIContent":"] => Array ( [BIZFMS] => 9008 Password=45645646464654 Domain=172.24.130.201 Proxy=172.24.130.122 Port=5070 SipAuthName=45645646464654 DisplayName=Jayesh SiteKey=5DCA-E878 Proxy=172.24.130.122 [DialPlan]DP_Exception= DP_Rule1= DP_Rule2= [Advanced] EnterpriseVoiceMail= EnterpriseVoiceMailPin= CellNumber= SipTransport=\r\nDNSServer= 8.8.8.8 EnableDNS= RegistrationExpiry=3600 DTMFMode=\r\nKeepAliveWiFi=30 KeepAliveMobileData=60SipDSCP=30 RTPDSCP=28 SecureRTP=\r\nClientSipPort=5090 ConnectivityMode=1 WiFiDisconnectionAlert= StunServer= EnableIce= HoldType= Codec=9,8,0 MobileDataCodecs=9,8,0 PacketizationInterval=20 SoftwareAEC= EchoTailLength=300 ToneLocalization= EnableVideo=1 VideoFrame=9 InitialBitrate=500 MaximumBitrate= 1000 VideoResolution=1 VideoPort=19304 LogLevel=60000 RunInBackground=1 EdOption=1 EnsipOption=3 RingTone= DefaultisAccountActive=1 [Device]VirtualMAC= ToolReset=\r\nAudioMode= 3"} ) [0] => Array ( [BIZFMS] => 9008 Password=45645646464654 Domain=172.24.130.201 Proxy=172.24.130.122 Port=5070 SipAuthName=45645646464654 DisplayName=Jayesh SiteKey=5DCA-E878 Proxy=172.24.130.122 [DialPlan]DP_Exception= DP_Rule1= DP_Rule2= [Advanced] EnterpriseVoiceMail= EnterpriseVoiceMailPin= CellNumber= SipTransport=\r\nDNSServer= 8.8.8.8 EnableDNS= RegistrationExpiry=3600 DTMFMode=\r\nKeepAliveWiFi=30 KeepAliveMobileData=60SipDSCP=30 RTPDSCP=28 SecureRTP=\r\nClientSipPort=5090 ConnectivityMode=1 WiFiDisconnectionAlert= StunServer= EnableIce= HoldType= Codec=9,8,0 MobileDataCodecs=9,8,0 PacketizationInterval=20 SoftwareAEC= EchoTailLength=300 ToneLocalization= EnableVideo=1 VideoFrame=9 InitialBitrate=500 MaximumBitrate= 1000 VideoResolution=1 VideoPort=19304 LogLevel=60000 RunInBackground=1 EdOption=1 EnsipOption=3 RingTone= DefaultisAccountActive=1 [Device]VirtualMAC= ToolReset=\r\nAudioMode= 3"} ) )
【问题讨论】:
-
预期输出是什么?
-
请对此
How Do I pass "[ ]" as string and not json object进行更多解释? -
我已经添加了预期的输出@JYoThI
-
它在解码时正确编码,并按预期输出为字符串。 "[PRODUCT] Username=9008 Password=45645646464654 [DialPlan] DP_Exception= DP_Rule1= DP_Rule2=[Advanced] CellNumber=Transport=isAccountActive=1[Device]VirtualMAC=ToolReset=Mode=3" 它不认为是数组。
-
您的预期输出不正确,因为换行符被空格替换。但是
[]并没有什么特别之处。
标签: php json codeigniter