2016-09-25 14 views
0

からJSONを読むこんにちは、私は形式でJSON私を返すサービスがあります。アペックス(Salesforceは)応答

"{\"phoneIsValid\":true,\"IsMobile\":true,\"message\":\"success\"}" 

を私は、ステータス200(OK)

で応答を得るが、どのように私はから私の値を取得することができますクライアントApexのjson(phoneIsValid、IsMobile、message)。

ここで私はここに行方不明何頂点での私のコード(100%ワーキングサービス)

 JSONGenerator gen = JSON.createGenerator(true); 
     gen.writeStartObject(); 
     gen.writeStringField('phone', '123466789'); 
     gen.writeEndObject(); 
     String jsonString= gen.getAsString(); 

     HttpRequest req = new HttpRequest(); 
     req.setMethod('POST'); 
     req.setHeader('Content-Type', 'application/json'); 
     req.setHeader('Accept', 'application/json'); 
     req.setHeader('Content-Length',String.Valueof(jsonString.length())); 
     req.setHeader('Connection','keep-alive'); 
     req.setHeader('Charset','utf-8'); 
     req.setEndpoint('https://services.ValidatePhone'); 
     req.setBody(jsonString); 

     Http http = new Http(); 
     HTTPResponse res = new HTTPResponse(); 
     res = http.send(req); 
     JSONParser parser = JSON.createParser(res.getBody()); 
     //res.getBody() return --> 

"{\"phoneIsValid\":true,\"IsMobile\":true,\"message\":\"success\"}"

 if(res.getStatusCode() == 200)//i get 200,but cant find my value from Json 
       { 

       //here i need to get my values from Json 
       // SOME THINK LIKE THIS 
       // if(parser.phoneIsValid==true){ MY CODE} 

       } 

+1

http://json2apex.herokuapp.com – superfell

答えて

0

スーパーフェイルありがとうございます。それは私の応答文字列

"{\" phoneIsValidでうまく動作didntのため、あなたはJSONのためbuilsクラスを追加する必要があります

は\、

public class JsonPhone { 

    public boolean phoneIsValid=false; 
    public boolean IsMobile=false; 
    public String message='empty'; 

     } 

文字列の小さな変更をpbject ":trueの場合、\" IsMobile \ ":trueの場合、\" メッセージ\ ":\" 成功\ "}"

  String sResponseText = res.getBody(); 
      sResponseText=sResponseText.replaceFirst('^\"+', ''); 
      sResponseText=sResponseText.replaceFirst('\"+$', ''); 
      sResponseText=sResponseText.replace('\\', ''); 

      JsonPhone jPhone = (JsonPhone)JSON.deserialize(sResponseText, JsonPhone.class); 

とJPH 1つは使用の準備ができています。

+0

あなたの文字列の余分な引用符は、system.Debugがどのように動作するかのアーティファクトだと思うので、その行を試して修正する必要はありません。 – superfell