json如何转换为bson

function TMyMongoDbClass.JsonToBson(code:string;obj: tjsonvalue): tbson;
var
b:tbson;
jv:tjsonvalue;
buffer:tbsonbuffer;
function BL_json(curbuf:tbsonbuffer;pname:string;tobj:tjsonvalue):tbson;
var
i:integer;
p:tjsonpair;
pn,s1,s2:string;
ja:tjsonarray;
o:tjsonobject;
tb:tbson;
begin
//{name:001,arr:[{obj:1},{obj:2}]}
if tobj is tjsonnumber then
begin
s2:=tobj.ToString;
if s2.StartsWith(‘"‘) then
delete(s2,1,1);
if s2.EndsWith(‘"‘) then
delete(s2,length(s2),1);

curbuf.append(pname,strtofloat(s2));
exit;
end;
if tobj is tjsonstring then
begin
s2:=tobj.ToString;
if s2.StartsWith(‘"‘) then
delete(s2,1,1);
if s2.EndsWith(‘"‘) then

delete(s2,length(s2),1);
curbuf.append(pname,s2);
exit;
end;
if tobj is tjsontrue then
begin
curbuf.append(pname,true);
exit;
end;
if tobj is tjsonfalse then
begin
curbuf.append(pname,false);
exit;
end;

if tobj is tjsonarray then
begin
ja:=tobj as tjsonarray;
curbuf.startArray(pname);
for i := 0 to ja.count-1 do
begin
//tb:=bl_json(tbuf,ja.Items[i]);
BL_Json(curbuf,‘‘,ja.Items[i]);
end;
curbuf.finishObject;
end;
if tobj is tjsonobject then
begin
//{name:001,arr:[{obj:1},{obj:2}]}
buffer.startObject(pname);
o:=tobj as tjsonobject;
for i := 0 to o.Count-1 do
begin
s1:=o.Pairs[i].JsonString.ToString;
delete(s1,1,1);
delete(s1,length(s1),1);

if o.Pairs[i].JsonValue is tjsonnumber then
begin
s2:=o.Pairs[i].jsonValue.ToString;
if s2.StartsWith(‘"‘) then
delete(s2,1,1);
if s2.EndsWith(‘"‘) then
delete(s2,length(s2),1);
curbuf.append(s1,strtofloat(s2));
continue;
end;
if o.Pairs[i].JsonValue is tjsonstring then
begin
s2:=o.Pairs[i].JsonValue.ToString;
if s2.StartsWith(‘"‘) then
delete(s2,1,1);
if s2.EndsWith(‘"‘) then

delete(s2,length(s2),1);
curbuf.append(s1,s2);
continue;
end;
if o.Pairs[i].JsonValue is tjsontrue then
begin
curbuf.append(s1,true);
continue;
end;
if o.Pairs[i].JsonValue is tjsonfalse then
begin
curbuf.append(s1,false);
continue;
end;

BL_Json(curbuf,s1,o.Pairs[i].JsonValue);
end;
curbuf.finishObject;
end;

end;

begin
//解析json
buffer:=tbsonbuffer.Create;

BL_json(buffer,‘code‘,obj);
b:=buffer.finish;
exit(b);
end;

时间: 2024-10-25 16:59:01

json如何转换为bson的相关文章

js 将json字符串转换为json兑现

在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键.例如:JSON字符串:var str1 = '{ "name": "cxh", "sex": "man" }'; JSON对象:var str2 = { "name": "cxh", "sex": "man"

JSON文本转换为JSONArray 转换为 List<Object>

1 package com.beijxing.TestMain; 2 3 import java.io.File; 4 import java.io.IOException; 5 import java.util.ArrayList; 6 import java.util.List; 7 8 import org.apache.commons.io.FileUtils; 9 10 import com.beijxing.entity.Student; 11 12 import net.sf.js

使用eval()将json字符串转换为对象要多加一个小括号

使用eval()将json字符串转换为对象要多加一个小括号:关于eval()函数的具体用法这里就不多介绍了,具体可以参阅javascript的eval()方法一章节,下面就介绍一下为什么使用eval()函数将json格式字符串转换为对象的时候,需要多嵌套一层小括号,下面就介绍一下它的原因,希望能够对需要的朋友带来帮助.先看一段转换代码: var jsonStr='{"webName":"蚂蚁部落","webAddress":"青岛市南区

json对象转换为json字符串

json对象转换为json字符串         可以使用toJSONString()或者全局方法JSON.stringify()将JSON对象转化为JSON字符串.         1. toJSONString()方法                 var last=obj.toJSONString(); //将JSON对象转化为JSON字符         2. JSON.stringify()方法                 var last=JSON.stringify(obj)

json字符串转换为json对象

json字符串转换为json对象         var str = '{ "name": "cxh", "sex": "man" }';         1.使用eval()方法                 eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象.必须把文本包围在括号中,这样才能避免语法错误. var obj = eval('(' + str

js 将json字符串转换为json对象的方法解析(转)

js 将json字符串转换为json对象的方法解析 将json字符串转换为json对象的方法.在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键 例如: JSON字符串:var str1 = '{ "name": "cxh", "sex": "man" }'; JSON对象:var str2 = { "name": &

js 将json字符串转换为json对象的方法解析

例如: JSON字符串:var str1 = '{ "name": "cxh", "sex": "man" }'; JSON对象:var str2 = { "name": "cxh", "sex": "man" }; 一.JSON字符串转换为JSON对象 要使用上面的str1,必须使用下面的方法先转化为JSON对象: //由JSON字符串转换为JS

【荐】使用eval()、new Function()将JSON字符串转换为JSON对象

在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 第一种解析方式:使用eval函数来解析,并且使用jQuery的each方法来遍历 用jQuery解析JSON数据的方法,作为jQuery异步请求的传输对象,jQuery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明. 这里首先

多条Json数据转换为泛型数据

/// <summary> /// 单条json数据转换为实体 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="str">字符窜(格式为{a:'',b:''})</param> /// <returns></returns> private static T ConvertToEnt