在Elm 0.18中解析http响应

时间:2017-09-13 00:35:05

标签: parsing elm

我正在我的Elm 0.18前端解析来自我的服务器(Phoenix 1.3)的http响应。

响应如下:

    errorCode : String -> String
      errorCode =
        error
            |> Debug.log "error"
            |> toString
            |> String.split "code = "
            |> List.drop 1
            |> String.join ""
            |> String.split ","
            |> List.take 1
            |> String.join ""
            |> Debug.log "Error"

我想将三位数HTTP代码解压缩为String ....在本例中为“422”。

在榆树中解析这个问题的最佳方法是什么?我正在使用一种非常hacky的方法,我想知道这里最适用的工具。

#include <iostream>
#include <cstdint>

int main()
{
    uint32_t first = 5;
    uint32_t second = 6;

    uint64_t combined = (uint64_t(first) << 32) | second;

    uint32_t firstR = combined >> 32;
    uint32_t secondR = combined & 0xffffffff;

    std::cout << "F: " << firstR << "  S: " << secondR << std::endl;
}

1 个答案:

答案 0 :(得分:2)

看起来您elm-lang/http包中有Error。你引用的字符串就是Error在控制台/调试器中呈现为字符串的方式,我相信 - 我认为没有任何解析可以这样做。

换句话说,我认为您想要的功能根本不会在String上运行:

errorCode : Error -> Maybe String
errorCode err =
    case err of
        BadStatus response ->
            Just response.status.code

        _ ->
            Nothing

(榆树编译器当然应该告诉您String -> String或我的Error -> Maybe String签名是否正确。)