2017-09-01 98 views
1

我的WSDL文件: -如何從php soap web服務的json響應中去除反斜線?

<?php 

/** 

    @Description: Book Information Server Side Web Service: 
    This Sctript creates a web service using NuSOAP php library. 
    fetchBookData function accepts ISBN and sends back book information. 

    @Author: http://programmerblog.net/ 

    @Website: http://programmerblog.net/ 

*/ 

require_once('dbconn.php'); 

require_once('lib/nusoap.php'); 

$server = new nusoap_server(); 

/* Fetch 1 book data */ 
function presentStatusPull($rnbcode){ 

    global $dbconn; 

    $sql = "SELECT * FROM rnb_gpl_data where did = :rnbcode"; 

    // prepare sql and bind parameters 
    $stmt = $dbconn->prepare($sql); 

    $stmt->bindParam(":rnbcode", $rnbcode); 

    // insert a row 
    $stmt->execute(); 

    $data = $stmt->fetch(PDO::FETCH_ASSOC); 

    return json_encode($data); 

    $dbconn = null; 

} 

$server->configureWSDL('index', 'urn:index'); 

$server->register('presentStatusPull', 
     array('rnbcode' => 'xsd:string'), 
     array('data' => 'xsd:string'), 
     'urn:index', 
     'urn:index#presentStatusPull' 
    ); 

$server->service(file_get_contents("php://input")); 

?> 

然後呼叫我的PHP文件中的WSDL服務器: - URL的

<?php 



    require_once('lib/nusoap.php'); 


    $result = array(); 

    $wsdl = "http://meter.digireach.com/RnBCode/index.php?wsdl"; 


    $rnbcode = $_GET['rnbcode']; 


//create client object 
     $client = new nusoap_client($wsdl, true); 




$result = $client->call('presentStatusPull', array($rnbcode)); 

     // $result = json_decode($result); 

      // echo json_encode($result); 
    echo json_encode($result, JSON_NUMERIC_CHECK); 


?> 

和響應: - http://meter.digireach.com/RnBCode/presentstatus.php?rnbcode=DR00098EM

和輸出是這樣的: - 「{\」srno \「:\」1 \「,\」tr_date \「:\」2017-08-22 11:53:33 \「,\」did \「:\」DR00098EM \「 ,\ 「P1 \」:\ 「455 \」 \ 「P2 \」:\ 「0 \」,\ 「P3 \」:\ 「0 \」,\ 「P4 \」:\ 「48 \」,\ 「p 5 \ 「:\」 0 \ 「\ 」P6 \「:\ 」0 \「,\ 」P7 \「:\ 」60 \「,\ 」P8 \「:\ 」40 \「,\」 P9 \ 「:\」 0 \」,\ 「P10 \」:\ 「0 \」,\ 「P11 \」:\ 「5 \」,\ 「P12 \」:\ 「0 \」,\ 「P13 \」: \ 「0 \」,\ 「P14 \」:\ 「1103 \」,\ 「P15 \」:\ 「36170 \」,\ 「P16 \」:\ 「511046 \」 \ 「P17 \」:\」 0 \ 「\ 」P18 \「:\ 」1 \「 \ 」P19 \「:\ 」1 \「 \ 」P20 \「:\ 」1 \「 \ 」TNO \「:\」 理想\ 「,\」ser_date \「:\」2017-08-22 11:54:12 \「}」

所以,我想從這個JSON響應中刪除反斜槓()。

回答

1

您沒有設置有效的JSON頭,這就是爲什麼您的API響應字符串不是JSON。

解決方案1: 您應該在JSON輸出之前設置有效的Content-Type標頭。就像下面:

header('Content-Type: application/json'); 
echo json_encode($result, JSON_NUMERIC_CHECK); 

或解決方案2: 解碼你的輸出兩次json_decode(json_decode($json))

+1

謝謝...... –