簡體   English   中英

Salesforce中iOS中格式錯誤的json

[英]malformed json in iOS from salesforce

在iOS中,我調用了Salesforce上托管的rest資源:

@HttpPost
    global static String getEmail(String app, String BorrowerId, String BorrowerName) {
        System.debug('hit the web service');
        System.debug(app);
        System.debug(BorrowerId);
        System.debug(BorrowerName);

        JSONGenerator gen = JSON.createGenerator(true);
        gen.writeStartObject();
        gen.writeStringField('email', 'woohoo');
        gen.writeEndObject();

        String jsonString = gen.getAsString();
        System.debug(jsonString);
        return jsonString;
    }

返回的jsonString在其中:{“ email”:“ woohoo”}

如調試日志所示。 但是,當我嘗試在iOS中收到此響應時:

- (void)request:(SFRestRequest *)request didLoadResponse:(id)jsonResponse
{
    NSLog(@"json response: %@", jsonResponse);
    NSString *retString = [NSString stringWithFormat:@"%@", jsonResponse];
    NSLog(@"records: %@", retString);
}

我收到錯誤:警告錯誤,解析json:錯誤域= NSCocoaErrorDomain代碼= 3840“操作無法完成。(可可錯誤3840。)”(JSON文本不是以數組或對象開頭,並且選項允許未設置片段。)UserInfo = 0xcbaf230 {NSDebugDescription = JSON文本不是以數組或對象開頭,並且沒有允許設置片段的選項。}

我也嘗試在Salesforce中返回一個對象,但是返回了相同的錯誤。 如何將數據作為NSString讀回?

謝謝

讓Web服務返回地圖。

@HttpPost
global static Map<String, String> getEmail(String app, String BorrowerId, String BorrowerName) {
    System.debug('hit the web service');
    System.debug(app);
    System.debug(BorrowerId);
    System.debug(BorrowerName);

    Map<String, String> emailData = new Map<String, String>{'email' => 'woohoo'};
    return emailData;
}

這使您可以將響應視為NSDictionary

- (void)request:(SFRestRequest *)request didLoadResponse:(id)jsonResponse {
   NSString *emailString = [jsonResponse objectForKey:@"email"];
   NSLog(@"email: %@", emailString);
}

POST請求應保留用於創建記錄,因此您可以考慮將其作為GET重新進行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM