繁体   English   中英

Grails:Linux上的JSON.parse()错误-在Windows上工作-已卡住

[英]Grails: JSON.parse() Error on Linux - Works on Windows - stumped

我正在研究一些Facebook OAuth 2.0代码以修复当前插件。 我已经完成了99%的工作,但是当我将代码部署到Linux时,它无法工作(在Windows上开发)。

我得到的错误是:
Exception Message: Expected a ',' or '}' at character 277 of {"algorithm":"HMAC-SHA256","code":"AQDZPCNUY2VHnN1R340mArRUggpP1393V9E0VeL-fJbp0VdRBOzR5S5sHQB5ysdhfX8BrPP0u43EVi5OBx5MnrbxROJsuwMrqHmEDRa2pFm-GQ-2_R1blo_uBgOoKFG_Gm0TvtiKhzR1LwV8KNJlAgfCikuzx-zCxDmUz4t6b6xWbvrLPBMYZaLzdy5te3lYGqk","issued_at":1324533514,"user_id":"123144996"} Caused by: Expected a ',' or '}' at character 277 of {"algorithm":"HMAC-SHA256","code":"AQDZPCNUY2VHnN1R340mArRUggpP1393V9E0VeL-fJbp0VdRBOzR5S5sHQB5ysdhfX8BrPP0u43EVi5OBx5MnrbxROJsuwMrqHmEDRa2pFm-GQ-2_R1blo_uBgOoKFG_Gm0TvtiKhzR1LwV8KNJlAgfCikuzx-zCxDmUz4t6b6xWbvrLPBMYZaLzdy5te3lYGqk","issued_at":1324533514,"user_id":"123144996"}

在此错误之前。 我收到的消息没有结尾}作为黑客,我实际上使用了如下代码:

if (!jsonData.trim().endsWith("}")) {
    jsonData = jsonData + "}"
}

我不确定这段代码在Windows和Linux上的工作方式如何不同。 寻找想法。 不确定是否正在编码? 新的URL()。text? 该decodeBase64代码? 有什么想法吗?

    String[] signedRequestParts = signedRequest.split('\\.')
    // signedRequest gets deconstructed into a JSON packet
    String jsonData = new String(Base64.decodeBase64(signedRequestParts[1].getBytes()), 'UTF-8')
    // attempt at temporary hack fix    
    if (!jsonData.trim().endsWith("}")) {
        jsonData = jsonData + "}"
    }

    def json = JSON.parse(jsonData) // I get that error on this line
    def fbToken
    if (json.code) {
        def u = 'https://graph.facebook.com/oauth/access_token' +
                '?client_id=' + applicationId + '&client_secret=' + secret +
                '&redirect_uri=' + '&code=' + json.code
        def content = new URL(u).text
        fbToken = content.split("&")[0].split("=")[1];
    }

java.lang.String.getBytes()也有一个字符集。 您是否尝试过getBytes(“ UTF-8”)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM