小编Bru*_*uno的帖子

在序列化中将长数字转换为字符串

我有一个定制的类,使用长ID.但是,当我使用ajax调用我的动作时,我的ID被截断并且它丢失了最后2个数字,因为在处理大数字时javascript失去了精度.我的解决方案是给我的javascript一个字符串,但ID必须在服务器端保持很长时间.

有没有办法将属性序列化为字符串?我正在寻找某种属性.

调节器

public class CustomersController : ApiController
{
   public IEnumerable<CustomerEntity> Get()
   {
      yield return new CustomerEntity() { ID = 1306270928525862486, Name = "Test" };
   }
}
Run Code Online (Sandbox Code Playgroud)

模型

public class CustomerEntity
{
   public long ID { get; set; }
   public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

JSON结果

[{"Name":"Test","ID":1306270928525862400}]
Run Code Online (Sandbox Code Playgroud)

c# json asp.net-mvc-4 asp.net-web-api

14
推荐指数
1
解决办法
9271
查看次数

在线程之间共享mvar

我正在尝试制作一个打印箭头的程序,直到用户按下回车键(参见下面的代码).

问题是,当我按回车键时,我在控制台中看到"停止"字符串,但它不会更改outputArrows函数中的m值.

我该如何分享州?

import Control.Concurrent
import Control.Concurrent.Async
import Control.Monad

waitForInput m = do
    getLine
    putStrLn "stop"
    putMVar m True

outputArrows m = do
    stop <- readMVar m
    unless stop $ do
        threadDelay 1000000
        putStr ">"
        outputArrows m

main = do
    m <- newMVar False
    th1 <- async (waitForInput m)
    th2 <- async (outputArrows m)
    wait th1
    wait th2
Run Code Online (Sandbox Code Playgroud)

concurrency multithreading haskell

3
推荐指数
1
解决办法
92
查看次数