////////试题信息/////////////////
// 已知
// h、d两个数组分别表示表头和内容
// 要求
// 编写函数一:rs2Array
// 返回一个数组,每一项为一个对象。
// 编写函数二:rs2MultiHash
// 返回一个对象,内容是键值对。
////////////////////////////////
using System;
using System.Collections.Generic; public class test_02_quiz
{
static void Main(string[] args)
{
List<String> tmp, h = new List<String>();
h.Add("id"); h.Add("name"); h.Add("region");
List<List<String>> d = new List<List<String>>();
tmp = new List<String>();
tmp.Add(""); tmp.Add("wang"); tmp.Add("shanghai");
d.Add(tmp);
tmp = new List<String>();
tmp.Add(""); tmp.Add("huang"); tmp.Add("beijing");
d.Add(tmp);
tmp = new List<String>();
tmp.Add(""); tmp.Add("zhang"); tmp.Add("beijing");
d.Add(tmp);
tmp = new List<String>();
tmp.Add(""); tmp.Add("wang"); tmp.Add("shanghai");
d.Add(tmp); String str1 = rs2Array(h, d);
Console.WriteLine(str1); String str2 = rs2MultiHash(h, d, h[]);
Console.WriteLine(str2);
} /* rs2Array(h, d) 期望结果为:
[
{id: "100", name: "wang", region: "shanghai"},
{id: "101", name: "huang", region: "beijing"},
{id: "102", name: "zhang", region: "beijing"},
{id: "103", name: "li", region: "shanghai"}
]
*/
private static String rs2Array(List<String> h, List<List<String>> d)
{
//return "not implemented";
// 注释上面一句,并请在此实现函数: } /* rs2MultiHash(h, d, h[0]) 期望结果为:
{
"100": [{id: "100", name: "wang", region: "shanghai"}],
"101": [{id: "101", name: "huang", region: "beijing"}],
"102": [{id: "102", name: "zhang", region: "beijing"}],
"103": [{id: "103", name: "li", region: "shanghai"}]
}
*/
/* rs2MultiHash(h, d, h[2]) 期望结果为:
{
"shanghai": [
{id: "100", name: "wang", region: "shanghai"},
{id: "103", name: "li", region: "shanghai"}
],
"beijing": [
{id: "101", name: "huang", region: "beijing"},
{id: "102", name: "zhang", region: "beijing"}
]
}
*/
private static String rs2MultiHash(List<String> h, List<List<String>> d, String key)
{
//return "not implemented";
// 注释上面一句,并请在此实现函数: } // 如果有公共函数需要提取,请在此编写: }

方法代码:

 private static String rs2Array(List<String> h, List<List<String>> d)
{
return JsonConvert.SerializeObject(d.Select(x => middleConvert(h, x)));
} private static String rs2MultiHash(List<String> h, List<List<String>> d, String key)
{
return JsonConvert.SerializeObject(d.Select(x => middleConvert(h, x))
.GroupBy(x => x[key])
.ToDictionary(x => x.Key, x => x.ToArray()));
} private static Dictionary<string, string> middleConvert(List<string> h, List<string> d)
{
return h.ToDictionary(x => x, x => d[h.IndexOf(x)]);
}

C# 数组转json的更多相关文章

  1. iOS 字典或者数组和JSON串的转换

    在和服务器交互过程中,会iOS 字典或者数组和JSON串的转换,具体互换如下: // 将字典或者数组转化为JSON串 + (NSData *)toJSONData:(id)theData { NSEr ...

  2. 使用FastJSON,将对象或数组和JSON串互转

    Fastjson,是阿里巴巴提供的一个Java语言编写的高性能功能完善的JSON库.其开源的下载网址为:https://github.com/AlibabaTech/fastjson. 示例代码如下: ...

  3. javascript里面的数组,json对象,动态添加,修改,删除示例

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  4. JSon_零基础_002_将List类型数组转换为JSon格式的对象字符串,返回给界面

    将List类型数组转换为JSon格式的对象字符串,返回给界面 所需要导入的包: 编写bean: package com.west.webcourse.po; /** * 第01步:编写bean类, * ...

  5. JSon_零基础_001_将布尔类型数组转换为JSon格式字符串,返回给界面

    将布尔类型数组转换为JSon格式字符串,返回给界面 需要导入包: 编写bean: package com.west.webcourse.po; /** * 第01步:编写bean类, * 下一步com ...

  6. JQ将数组转换为Json

    var ArrComList; try { //接口传进来的数据格式为 A,B,C,D,这里根据逗号分隔返回数组. ArrComList = WeighControl.GetComList().spl ...

  7. 数据(数组,json)的处理

    有些时候我们在做联动事件以及获取动态的数据是,给到我们的都是数组,json格式的数据. 为了方便快速的处理这些数据,jq给我们提供了很多简便的方法. each()方法 在jQuery里有一个each方 ...

  8. php:数组与json数据相互转换

    1.数组转json $json=json_encode(数组名) 数组转json字符串 2,json转数组 $arr=json_decode(json字符串,[true]) 不加true第一次转直接转 ...

  9. js数组,字符串,json互相转换函数有哪些

    js数组,字符串,json互相转换函数有哪些 一.总结 一句话总结: JSON.stringify(arr) JSON.parse(jsonString) str.split('') array.jo ...

  10. js 数组转json,json转数组

    //数组转json串var arr = [1,2,3, { a : 1 } ];JSON.stringify( arr ); //json字符串转数组var jsonStr = '[1,2,3,{&q ...

随机推荐

  1. C#如何测量字符串的高度宽度和精确取得字符串的高度宽度

    C#如何测量字符串的高度宽度和精确取得字符串的高度宽度 因为MFC中CDC有GetTextExtent()可以获得字符串的高度宽度 像素单位,所以自然想到c#的GDI+的MeasureString,这 ...

  2. springboot自定义http反馈状态码

    最近在开发一些http server类型程序,通过spring boot构建一些web程序,这些web程序之间通过http进行数据访问.共享,如下图: 假设现在client发起一次保存数据的请求到se ...

  3. 微软BI 之SSIS 系列 - 对于平面文件中 NULL 值处理过程中容易极易混淆的几个细节

    开篇介绍 最近有人问我有关文件处理中空值处理的相关问题: OLE DB Destination 中的 Keep Nulls 如何控制 NULL 值的显示? 为什么选中了 Keep Nulls 但是数据 ...

  4. JAVA和C#检测IP地址段是否交叉和获取地址段IP列表的方法

    一.说明 我们经常编程时,需要对一个DIDR地段计算其可用IP地址,或者验证某个IP是否被包含在一个地址段中. 二.工具 1.Java 可以使用 cidr-ip-trie库解决. https://gi ...

  5. llvm Array Bounds Check Elimination

    http://www.knosof.co.uk/vulnerabilities/arraybnd.html http://www.cs.utsa.edu/dmz/techrep/2010/CS-TR- ...

  6. V-rep学习笔记:关节力矩控制

    Torque or force mode When the joint motor is enabled and the control loop is disabled, then the join ...

  7. VBScript.RegExp 正则表达式excel vba 学习经验

    1) 手动引用(前期绑定)   点击VBE编辑器菜单:工具 - 引用,选取: Microsoft VBScript Regular Expressions 5.5   Dim regex As New ...

  8. 【SqlServer】解析SqlServer中的事务

    目录结构: contents structure [+] 事务是什么 控制事务 数据并发访问产生的影响 事务的隔离级别 锁 NOLOCK.HOLDLOCK.UPDLOCK 死锁分析 在这篇Blog中, ...

  9. MySQL设置全局sql日志

     分别执行开启日志以及日志路径和日志文件名 SET GLOBAL general_log_file = '/var/lib/mysql/localhost.log';SET GLOBAL genera ...

  10. 译:4.RabbitMQ Java Client 之 Routing(路由)

    在上篇博文 译:3.RabbitMQ 之Publish/Subscribe(发布和订阅)  我们构建了一个简单的日志系统 我们能够向许多接收者广播日志消息. 在本篇博文中,我们将为其添加一个功能 - ...