V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  qW7bo2FbzbC0  ›  全部回复第 6 页 / 共 72 页
回复总数  1436
1 ... 2  3  4  5  6  7  8  9  10  11 ... 72  
147 天前
回复了 qW7bo2FbzbC0 创建的主题 Go 编程语言 被 go 语言的 json.Marshal 恶心到了
同样是使用匿名类型去序列化,java 也正确识别出了 Number 类型
```java
package com.test.Demo;

import java.sql.*;
import java.io.*;
import java.util.*;
import com.google.gson.*;

public class Demo {
static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://127.0.0.1:3306/test?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
static final String USER = "root";
static final String PASS = "******";

public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(DB_URL,USER,PASS);
stmt = conn.createStatement();
String sql = "select id from t1";
ResultSet rs = stmt.executeQuery(sql);
HashMap<String, Object> x;
x = new HashMap<String, Object>();

while(rs.next()){
Object id = rs.getObject("id");
x.put("name", "name");
x.put("value", id);
}
Gson gson = new Gson();
System.out.println(gson.toJson(x));
} catch (Exception e){
e.printStackTrace();
}

}

}

```
147 天前
回复了 qW7bo2FbzbC0 创建的主题 Go 编程语言 被 go 语言的 json.Marshal 恶心到了
同样是使用匿名类型去序列化,c#正确识别出了 Number 类型

```c#
// See https://aka.ms/new-console-template for more information
using System.Text.Json;
using MySqlConnector;


using var connection = new MySqlConnection("Server=127.0.0.1;User ID=root;Password=****;Database=test");
connection.Open();

using var command = new MySqlCommand("select id from t1;", connection);
using var reader = command.ExecuteReader();
var x = new Dictionary<string, object> { };
while (reader.Read())
{
x["name"] = "name";
x["value"] = reader.GetValue(0);
}
Console.WriteLine(JsonSerializer.Serialize(x));
```

输出结果为

```js
{"name":"name","value":1}
```
147 天前
回复了 qW7bo2FbzbC0 创建的主题 Go 编程语言 被 go 语言的 json.Marshal 恶心到了
@fregie 1 、项目定型是这个语言。2 、类似的蹩脚问题不止这一个,在 go1.8 之前代码里面好多 inteface 飞来飞去,不仅丢失了类型还影响类型安全。 我讨厌 interface 转来转去也是犯懒,我觉得 go/sql 和 json.Marshal 对于匿名类型查询不友好也是犯懒?你扣帽子是什么态度?
147 天前
回复了 qW7bo2FbzbC0 创建的主题 Go 编程语言 被 go 语言的 json.Marshal 恶心到了
147 天前
回复了 qW7bo2FbzbC0 创建的主题 Go 编程语言 被 go 语言的 json.Marshal 恶心到了
https://forum.golangbridge.org/t/json-encode-byte-array-as-hex-string-instead-of-base64/26751

```
One must use reflection to walk and copy the original object replacing byte arrays with the user-defined type for which the MarshalJSON method is defined, but there’s probably no better way. An even uglier alternative is to post-process the JSON.
```
147 天前
回复了 qW7bo2FbzbC0 创建的主题 Go 编程语言 被 go 语言的 json.Marshal 恶心到了
在 go/sql 中,interface 或者 any 会返回[]byte ,在 json.Marshal 中,[]byte 会被序列化成 base64 encode 字符串


`Array and slice values encode as JSON arrays, except that []byte encodes as a base64-encoded string, and a nil slice encodes as the null JSON value.`

@NessajCN @sagaxu
147 天前
回复了 qW7bo2FbzbC0 创建的主题 Go 编程语言 被 go 语言的 json.Marshal 恶心到了
@cuiweiqiang 用 java 模拟 mysql 命令行工具,这个场景是不是 sql 已知,行类型未知?
147 天前
回复了 qW7bo2FbzbC0 创建的主题 Go 编程语言 被 go 语言的 json.Marshal 恶心到了
@dcalsky 肯定是有传入黑箱 sql ,返回 json 结果的场景,没遇到不等于没有。这和 python 、js 、php 味没关系,java c#都正常
147 天前
回复了 qW7bo2FbzbC0 创建的主题 Go 编程语言 被 go 语言的 json.Marshal 恶心到了
@sagaxu @NessajCN @james122333 但是 go 语言中,用 interface 或者 any 来模拟 java c#这种 getObject ,然后序列化,结果就是 base64 encode 后的 string
147 天前
回复了 qW7bo2FbzbC0 创建的主题 Go 编程语言 被 go 语言的 json.Marshal 恶心到了
@sagaxu 我去查了下 grafana 的代码,又查了下 sof ,对于未知返回类型的查询,的确是对各个类型自己去重新实现映射/序列化

和 @NessajCN 说的差不多

但是 java, c#这种都可以 getObject,然后直接对 Object 序列化出带类型的 json
152 天前
回复了 yatoroame 创建的主题 硬件 闲置的 4090,可以做点啥用?
@Hysian 懂哥给分析下 5090 能不能原价进入中国消费者手中?普通人想不溢价或者少溢价购买,是不是要出去买带回来?带回来会不会被税,大概多少税,我已经在等 5090 了
别和他们说,话不投机半句多,实在没钱就卷铺盖回家躺平
156 天前
回复了 dwu8555 创建的主题 PostgreSQL Apache AGE 和 Neo4j 哪个更好?
@dwu8555 也有一些 go 语言重新实现的图数据库,可以去搜搜。cypher 语言的确略有点生态优势
@jasondennis12139 18 款不是改进型的吗,怎么也粘滞。我的 16 款没赶上,到现在除了粘滞,touchid 也不识别了,而且过了免费换 C 面的时间了
@test10101 自己对号入座了?这满满农家肥味道。你今天踩了几圈缝纫机了啊?
166 天前
回复了 Debug1998 创建的主题 OpenWrt OpenWRT 环境下 OpenClash 抖音问题
我遇到 B 站 app 有这个问题,但是两个 wifi 切换的一分钟内,是可以正常的。要不然就退出 app 重新打开才可以
166 天前
回复了 MrLonely 创建的主题 宽带症候群 前海通信管理局是干嘛的?
好奇,通管局,网信办,地方网晶之间是怎样开展业务合作的?
1 ... 2  3  4  5  6  7  8  9  10  11 ... 72  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1157 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 41ms · UTC 23:46 · PVG 07:46 · LAX 15:46 · JFK 18:46
Developed with CodeLauncher
♥ Do have faith in what you're doing.