Find Ancestry From JSON
This seems to me to be a pretty vanilla recursion query so long as you unwrap the JSON dynamically. 

If HandyD will excuse some slight plagiarism...

declare @Employees nvarchar(max) =
'{
  "person": "Amy",
  "staff": [
    { "person": "Bill" },
    {
      "person": "Chris",
      "staff": [
        { "person": "Dan" },
        { "person": "Emma" }
      ]
    }
  ]
}';

;WITH hier ([Level], Parent, Person, staff) AS (
    SELECT 
        1 AS [Level], 
        convert(nvarchar(255),'') AS Parent, 
        l1.person, 
        l1.staff
    FROM OPENJSON(@Employees) WITH (
        person NVARCHAR(255),
        staff NVARCHAR(MAX) AS JSON
    ) l1
UNION ALL 
    select 
        [Level]+1,
        convert(nvarchar(255),h.Person) as Parent,
        oj.person,
        oj.staff
    from hier h 
    outer apply openjson(h.staff) with (
        person NVARCHAR(255),
        staff NVARCHAR(MAX) AS JSON
    ) oj
    where [Level] &lt; 100 -- or relevant maxrecursion level
        and oj.Person is not null
)
SELECT 
    [Level], 
    Parent, 
    Person 
FROM hier
order by [Level];