2017-03-02 23 views
0

我是从服务调用方法返回字符串,当我在邮递员中调用此服务时,它返回坏字符串使用邮政man的json响应中的坏字符串

@Override 
public synchronized String doDevicePair() throws SomeException  
{ 
    String returnString = null;  
     /*some logic over here*/ 

      returnString = "{\"success\": true, \"payload\": \"success!\", " 
      + "{\"userIdA\":\""+user1.getUserId()+"\", \"userIdB\":\""+user2.getUserId()+"\", \"tagName\":\""+tagName+"\" }"+"}"; 

    return returnString; 
     } 

我认为它给出了错误的字符串响应,因为返回字符串的语法错误。 所以我尝试

returnString = "{\"success\": true, \"payload\": \"success!\", " 
      + "{\"userIdA\":\""+user1.getUserId()+"\", \"userIdB\":\""+user2.getUserId()+"\", \"tagName\":\""+tagName+"\" }}"; 

//给出错误的字符串效应初探

,所以我只是通过返回硬编码字符串检查

returnString = "{\"success\": true, \"payload\": \"succes\" }"; 

这将产生对服务调用JSON响应,没有任何错误

怎么回事?请帮助我

+0

您应该使用正确的JSON库,并且可以将HashMap构建到JSON中 –

回答

1

您缺少内部对象的字符串名称。也许这应该是:

returnString = 
    "{\"success\": true, \"payload\": \"success!\", \"foo\": " // <-- missing property name 
     + "{\"userIdA\":\"" + user1.getUserId() 
     + "\", \"userIdB\":\"" + user2.getUserId() 
     + "\", \"tagName\":\"" + tagName + "\" }" 
    + "}"; 
+0

我需要将其附加到现有对象本身。不需要创建内部对象。 – daisy

+0

也可以。 :) – callmepills

0

我当你使用JSON对象,好先检查格式上的一些网站认为。这里有很多好的网站。 JSON ONLINE EDITOR。另外,您最好使用JSON简单的JSON库来使用JSON字符串。