2017-10-16 1 views
0

Sorry für die dumme Frage. Ich bin relativ neu, um nativ zu reagieren. Ich habe fetch arbeiten, so dass ich die json Antwort vom Server zurückbekommen kann. Die Server-API gibt eine Zeichenfolge zurück, wenn ein Fehler vorliegt, oder gibt ein json-Objekt zurück, wenn es erfolgreich ist. Gibt es eine Möglichkeit, die Antwort zu vergleichen, um zu sehen, ob sie eine String- oder Json-Variable ist?reagieren native JSON Antwort überprüfen, ob Zeichenfolge oder Objekt

Nicht sicher, wie man das oben genannte irgendeine Hilfe erreicht, würde geschätzt werden.

hier ist mein Code

api.js

var API = { 

    SetupBuyOnline(email, serialNumber, platformType) { 
     var url = 'https://<urlomitted>/SetupBuyOnline'; 
     return fetch(url, { 
      method: 'GET', 
      headers: { 
       'Content-Type': 'application/json; charset=UTF-8', 
       'Accept': 'application/json', 
       'operating_system': platformType, 
       'email': email, 
       'serialNumber': serialNumber 
      } 
     }).then((res) => res.json()); 
    } 
    }; 

finden userScreen.js

findUserScreen(){ 
// this.props.navigation.navigate('JoinNowScreen') 
StudentApi.SetupBuyOnline('[email protected]', deviceId, "iOS") 
.then((responseData) => { 
    if(typeof(responseData) == 'string') 
    { 
    console.log('got api call ' + responseData); 
    alert('test = ' + responseData); 
    } 
    else 
    { 
    console.log('got api call ' + responseData); 
    alert(responseData); 
    } 
}) 

}

nicht sicher, was ich falsch mache. Vielen Dank im Voraus

Antwort

2

Andere als Ihre == für === (strenge Gleichheit) nicht viel ändern. Aber wird mit normaler Gleichheit arbeiten.

Sie wissen nicht, was Sie falsch machen, weil dieser Code gut funktioniert.

Was ich tun würde, anstatt eine JSON-Antwort, die wie so

"{ error: true, }" "{ error: false, data: yourDataSentByTheServer! }" diese Weise können Sie nur überprüfen müssen, ob es ein Fehler Eigenschaft in Ihrem JSON-Antwort.

function stringType(){ 
 
    const responseData = 'hello'; 
 
    if(typeof(responseData) === 'string') 
 
    { 
 
    console.log('got api call ' + responseData); 
 
    alert('test = ' + responseData); 
 
    } 
 
    else 
 
    { 
 
    console.log('got api call ' + responseData); 
 
    alert(responseData); 
 
    } 
 
} 
 

 
function objType(){ 
 
    const responseData = { 1:'hello', 2: 'koko' } 
 
    if(typeof(responseData) === 'string') 
 
    { 
 
    console.log('got api call ' + responseData); 
 
    alert('test = ' + responseData); 
 
    } 
 
    else 
 
    { 
 
    console.log('got api call ' + responseData); 
 
    alert(responseData); 
 
    } 
 
}
<button onClick="stringType();">Click me for string</button> 
 
<button onClick="objType();">Click me for obj</button>

+1

seltsam. als ich es versucht habe, habe ich es nicht als String erkannt. Wie auch immer, danke für deine Hilfe :) – dogwasstar

+0

In Ordnung :) aber denke über meine Option für dein JSON nach, es ist ein guter Ansatz, um die Dinge kurz zu halten :) – WilomGfx

Verwandte Themen