Bu hatayla ilgili birçok gönderi gördüm, ancak hiçbir şey bana yardımcı olmuyor. işte benim durumdur:JSON dizgisini dönüştürürken "geçersiz json-ilkel"
json böyle jquery tarafından oluşturulan:
json_zug_grp = [];
$('#bx_zuggrp:checked').each(function() {
var name = $(this).attr("name");
var value = $(this).val();
item = {}
item ["name"] = name;
item ["value"] = value;
json_zug_grp.push(item);
});
Bundan sonra, ben bu ile, bir php komut için bir ajax arama yapmak
:$.ajax({
url: 'psexec.php',
type: "POST",
cache: false,
async: false,
data:{
zug_grps:JSON.stringify(json_zug_grp)
},
success: function(text){
console.log(JSON.stringify(json_zug_grp));
}
});
Console.log bana teklifleri çıktı verir.
[{"name":"USB_R","value":"CN=USB_R,OU=ZuGrp,OU=SecGrp,DC=DOMAIN,DC=loc"},{"name":"DVD_R","value":"CN=DVD_R,OU=ZuGrp,OU=SecGrp,DC=DOMAIN,DC=loc"}]
Ve php-script sonda gelen
parametre olarak json dize ile ps-komut bir shell_exec yapar:$zug_grps = $_POST["zug_grps"];
$para = " -zug_grps '".$zug_grps."'";
$psPath = "powershell.exe";
$psDIR = "C:\\path\\to\\scriptfolder\\";
$psScript = "script.ps1";
$runScript = $psDIR. $psScript;
$runCMD = $psPath." ".$runScript." ".$para;
$output = shell_exec($runCMD);
echo $output;
Ayrıca, bu yankı tırnak İLE json-string verir.
script.ps1 şuna benzer:
param(
[string]$zug_grps
)
`Write-Host $zug_grps`
çıktı şuna benzer: ps tırnak elimine neden
[{name:USB_R,value:CN=USB_R,OU=ZuGrp,OU=SecGrp,DC=DOMAIN,DC=loc},{name:DVD_R,value:CN=DVD_R,OU=ZuGrp,OU=SecGrp,DC=DOMAIN,DC=loc}]
Bilmiyorum.
$parsed = $zug_grps | Out-String | ConvertFrom-Json
aşağıdaki hatayı alıyorum:
ConvertFrom-Json : Invalid JSON-primitive: USB_R.
konusunda fikrin ne yanlış gidiyor
Şimdi böyle dize dönüştürmek olur? JSON
Bunun işe yarayacağını söyleyebilirim, ama '$ para =' -zug_grps '' .addslashes ($ zug_grps). '' '; ', Sadece iyi bir önlem için. –
bu sihir yapar! şimdi tırnaklar dizgenin içinde ve tüm işlerde. Teşekkür ederim! – user2355509