首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Json字符串被截断为2032字节

Json字符串被截断为2032字节
EN

Stack Overflow用户
提问于 2021-06-04 21:23:02
回答 1查看 148关注 0票数 0

我有许多存储过程,它们将查询结果作为一个Json字符串返回。下面是我的一个存储过程中的查询示例,该存储过程使用Microsoft SQL Server的FOR JSON功能返回JSON:

代码语言:javascript
复制
SELECT 
    V.* 
FROM 
    ClassPerson CP
INNER JOIN 
    PersonActive PA ON (CONVERT(nvarchar(128), PA.PersonActiveId) = @usrGuid AND CP.PersonId = PA.personId)
INNER JOIN 
    ClassPerson CP2 ON (CP2.classId = CP.ClassId)
INNER JOIN 
    V_Student V ON (V.PersonId = CP2.PersonId)
FOR JSON PATH, ROOT('AllRecord')

这是上面的查询可以返回的字符串:

代码语言:javascript
复制
{
    "AllRecord": [
        {
            "PersonId": 179,
            "VN_ID": "VN 1557",
            "FirstName": "Selena",
            "LastName": "Le",
            "BirthDate": "2012-07-10",
            "Gender": "Female",
            "Profession": "S",
            "HomePhone": 3127314009,
            "Father": "Lê p. Nguyen",
            "FatherPhone": 3127314009,
            "Mother": "Ho  Thu",
            "MotherPhone": 3127314009,
            "EmergencyContact": "Nguyen ngoc Hien",
            "Member": "N",
            "ActiveFlag": 1,
            "DateCreated": "2021-05-22T19:15:07.290",
            "Modified": "1900-01-01T00:00:06.797",
            "ModifierName": "dbo",
            "AddressId": 219,
            "EmailId": 181,
            "Street1": "4014 Two Bridge Ct",
            "City": "Buford",
            "StateAbr": "GA",
            "ZipCode": "30518",
            "Email": "nguyenle17@gmail.com"
        }
    ]
}

问题是,如果查询返回多条记录,PHP代码就会在字节#2033处被截断,从而使Json字符串无效。我尝试了许多不同的获取方法,但它仍然是相同的。请注意,我的所有存储过程在C#上都工作得很好。

有没有办法将php中的最大字符串增加到几百万字节?我的意思是,这是一个真实的世界,最多2032字节是一个笑话。

EN

回答 1

Stack Overflow用户

发布于 2021-06-04 23:31:25

将JSON查询放入另一个SELECT

代码语言:javascript
复制
SELECT (
    SELECT V.* FROM ClassPerson CP
        INNER JOIN PersonActive PA ON(CONVERT(nvarchar(128),PA.PersonActiveId) = @usrGuid AND CP.PersonId = PA.personId)
        INNER JOIN ClassPerson CP2 ON(CP2.classId = CP.ClassId)
        INNER JOIN V_Student V ON(V.PersonId = CP2.PersonId)
        FOR JSON PATH, ROOT('AllRecord')
);
-- alternatively
DECLARE @json nvarchar(max) = (
    SELECT V.* FROM ClassPerson CP
        INNER JOIN PersonActive PA ON(CONVERT(nvarchar(128),PA.PersonActiveId) = @usrGuid AND CP.PersonId = PA.personId)
        INNER JOIN ClassPerson CP2 ON(CP2.classId = CP.ClassId)
        INNER JOIN V_Student V ON(V.PersonId = CP2.PersonId)
        FOR JSON PATH, ROOT('AllRecord')
);

SELECT @json;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67838029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档